图解线索二叉树

今天我们来聊聊线索二叉树

线索二叉树的诞生背景

对于n个结点的二叉树,则在二叉链存储结构中就会有n+1个空链域
在这里插入图片描述
当我在查找某个结点的时候,想要知道这个节点的前驱结点或者后继结点,我该怎么做?
1.我是不是可以先序遍历或者后序遍历得到他们的前驱或者后继
2.我是不是可以开辟内存空间,对于每个结点增加一个指向它的前驱,增加一个指向它的后继

利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的指针,这些指针称为线索,加上线索的二叉树称为线索二叉树。

关于线索二叉树你所需要知道的

重要

 如果一个结点的左孩子为空,则指向它的前驱结点。
 如果一个结点右孩子为空,则指向它的后继。

怎么理解这句话,我们来看一个例子

二叉树
还是这张图

它的后序遍历为:

DBEFCA

那么它的后序线索二叉树是怎么画的呢?

我们根据它的后序遍历的结果来画后序线索二叉树

先来看D:D的左孩子为空,则指向它的前驱,它没有前驱。
D的右孩子为空,则指向它的后继,也就是B。

在这里插入图片描述

再来看B:B的左孩子为空,则指向它的前驱,它的前驱根据后序遍历的结果是D,所以B的左孩子指向D
B的右孩子不为空

在这里插入图片描述

再来看E,E的左孩子为空,则指向它的前驱结点B,E的右孩子为空,则指向它的后继结点F

在这里插入图片描述

再来看F,它的左孩子为空,则指向它的前驱结点E。它的右孩子为空,则指向它的后继节点C

在这里插入图片描述

  • 232
    点赞
  • 602
    收藏
    觉得还不错? 一键收藏
  • 31
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值