• (十一)数据结构-线索二叉树


    线索二叉树是(物理)结构=存储结构
    解析:二叉树是一种逻辑结构,但是线索二叉树加上线索后的链表结构,即它是二叉树在计算机内部的一种存储结构,所以是一种物理结构
    注意:无逻辑和存储结构这一说法,它其实就是“物理结构”,但是没有这个说法!

    一、引入线索二叉树目的

    引入线索二叉树是为了查找结点前驱和后继的速度,知道了"前驱"、"后继"信息,就可以把二叉树看作一个链表结构,从而可以像遍历链表一样遍历二叉树

    二、线索二叉树的规定

    规定:若无左子树,令lchild指向其前继结点;
    若无右子树,令rchild指向其后继结点;
    另外还需要增加两个标志域指向左(右)孩子还是指向前驱(后继)
    在这里插入图片描述
    标识域含义如下:
    在这里插入图片描述
    以这种结点结构构成的二叉链表作为二叉树的存储结构,成为线索链表;
    其中指向结点和后继的指针成为线索,加上线索的二叉树成为线索二叉树;

    三、线索二叉树的构建

    步骤:

    1. 求遍历
    2. 看空域
    3. 连线-左右
      举例说明:
      先序线索二叉树的构建
      1.首先我们将此二叉树的的先序遍历此二叉树得到结果
      ABCDE
      在这里插入图片描述
      2.从二叉树我们可以看出A连接了BE,因此A没有空域,我们写0;
      B也连接了CD,因此没有空域,我们写0;
      C没有连接子树,因为我们是二叉树,所以有两个空域
      3.A、B没有空狱,不需要连线,C有两个空域,从遍历结果可以看到C左边是A,右边是C,所以连线连左右边
      4.E有两个空域,但是只有左边,所以E的右边指向null

    在这里插入图片描述
    在这里插入图片描述
    中序线索二叉树的构建
    方法都是一样的,下面直接放结果:
    在这里插入图片描述
    后序线索二叉树的构建
    在这里插入图片描述

  • 相关阅读:
    Apipost使用介绍
    redis中数据类型命令整理
    java计算机毕业设计springboot+vue股票交易模拟系统
    公共经济学(开卷)期末复习题
    视图/存储过程/触发器
    java api System类
    web3之女巫(sybil)
    功能测试复习
    Docker 镜像管理
    通过顶顶通呼叫中心中间件玩转FreeSWITCH媒体流
  • 原文地址:https://blog.csdn.net/weixin_45579930/article/details/126106508