中序线索二叉树(构建,遍历和找前驱后继节点)附c++详细解释代码!

在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化

线索化二叉树的本质,实际上是对原始二叉树中的指向为空(NULL)的指针域进行利用,我们让其指向为NULL的指针域指向前驱(左孩子)或者是后继(右孩子),但是我们怎么来辨别是树节点还是指向其前驱还是后继呢

核心思想:

我们为每一个树节点增加两个标志域lThread和rThread,如果左子树是指向的是线索(前驱),那么lThread为true,如果指向的是树节点,那么lThread为false 。同理,如果右子树指向的是线索(后继),那么rThread为true**,如果指向的树节点,那么rThread为false。

在了解了线索化二叉树的核心思想之后,我们怎么来构建一颗线索化二叉树呢?

  • 1、我们先构建一颗树,然后再按某种遍历来线索化它,我们这里实现的是中序遍历 来线索化这棵二叉树。
  • 2、构建完成之后,我们将这棵树线索化的同时,给这棵树加一个头结点head,目的是为了方便操作。
  • 3、最后遍历的输出
  • 12
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值