二叉树的(先,中,后)序建树,线索化及遍历(一)

由于二叉树的(先,中,后)序线索化及遍历有一定的复杂性,所以在(一)中我先简单的介绍一下基本特征。希望你能坚持阅读完接下来的几篇文章,我相信你可以收获颇多!!!整体代码会在最后一篇文章以百度云形式给出。

一、 基本特征

线索二叉树:利用二叉树中的空指针域 来存放在某种遍历次序下的前驱和后继 ,这种指针叫“线索”(Thread)。这种加上了“线索”(Thread)的二叉树称为线索二叉树.。
1:本质对二叉树的非线性结构进行线性化操作。即可以看成队列,有唯一的前驱和后继。
2:二叉链表
这里写图片描述
3:带双亲的三叉链表(后序线索化要使用这个)
这里写图片描述
4:处理相关问题的核心思想:

递归

5:n个节点的二叉树中含有n+1个空指针域。

二、线索二叉树结构

线索二叉树结构

/********************************************************
Funtion:
    线索二叉树结构体(Threaded Binary Tree)
LTag:
    0 : lchild 域指示结点的左孩子 
    1 : lchild 域指示结点的前驱 
RTag:
    0 : rchild 域指示结点的右孩子 
    1 : rchild 域指示结点的后继
注意:
    由于后序线索化及遍历的特殊性,要使用带双亲的三叉链表
    原因请参考数据结构C语言P133的第一段!!!
*********************************************************/
typedef enum {
    Link, Thread
}PointerTag;//Link == 0 :指针, Thread == 1: 线索  

typedef struct BiThrNode {
    TElemType         data;
    struct BiThrNode *rchild, *lchild, *Parent; //左右孩子指针,(**Parent给后序线索化用的。先序,中序不考虑*Parent)
    PointerTag        LTag, RTag;               //左右标识
}BiThrNode, *BiThrTree;
(先序,中序)线索化及遍历:

https://blog.csdn.net/weixin_39956356/article/details/80142461

后序线索化及遍历:

https://blog.csdn.net/weixin_39956356/article/details/80144113

二叉树的(先,中,后)序的建树:

https://blog.csdn.net/weixin_39956356/article/details/80141837

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值