(数据结构)线索二叉树——线索二叉树概念、线索二叉树结点结构、创建线索二叉树程序、遍历线索二叉树算法

线索二叉树是一种特殊的二叉树,通过添加线索指针将二叉树转换为双向链表,方便插入、删除和查找操作。节点结构包括lchild、ltag、data、rtag和rchild,其中ltag和rtag用于指示前驱和后继。线索化过程是在遍历时修改空指针,例如中序遍历进行中序线索化。在需要频繁遍历和查找前驱后继的情况下,使用线索二叉树能节省时间和空间。
摘要由CSDN通过智能技术生成

线索二叉树将指向前驱和后继的指针称为线索,加上线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树

其实线索二叉树相当于把一棵二叉树变成一个双向链表,这有利于方便插入删除结点和查找某个结点的操作。

线索化对二叉树以某种次序遍历使其变为线索二叉树的过程

线索二叉树的结点结构:
lchild - ltag - data - rtag - rchild
其中:
1、ltag为0使指向该结点的左孩子,为1时指向该结点的前驱。
2、rtag为0使指向该结点的右孩子,为1时指向该结点的后继。
3、在每个结点增设两个标志域ltag和rtag,这两个标志域只存放0和1数字的布尔型变量,其占用内存空间小于指针变量。

实现线索二叉树结构程序:

typedef enum {Link,Thread} PointerTag;		
//link == 0表示指向左右孩子指针,Thread == 1表示指向前驱或后继的线索

typedef struct BiThrNode		                //二叉树线索存储结点
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄TimTim仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值