[数据结构] 图解线索树的后继查找,遍历

本文通过图解方式详细阐述了线索树中后继查找的原理,强调了在不同层级中如何依据‘左根右’顺序寻找后继节点。同时,介绍了遍历线索树的方法,包括先序、中序和后序,强调找到第一个访问节点并根据rtag判断后继。文章结合实例,帮助读者理解线索树的遍历过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以把 左根右 这个顺序先写出来,把他们按照二叉树的形式排列
然后就会涉及到不同的 左根右,这个时候因为是在画理解图嘛,所以可以把上一次的 左根右 中的左右结点作为下一次的根,这样就可以写两层 左根右,同时可以方便地辨识出它们之间的逻辑关系
然后我用单横线箭头表示访问的顺序,这同时其实就是后继的顺序;双横线箭头表示遍历函数进栈或者退栈,总之就不是访问,是找要访问的节点的顺序,这样写方便理解遍历的顺序

在这个图中,“根”字样的节点才是要研究的节点,也就是要寻找后继的节点。为什么其他字样不是呢?其实是一样的,其实都可以作为新一回合的 根。

看中序线索树的图,我现在要知道第一层的 根 的后继,那么其实我就是要知道,我访问了这个 根 之后,接下来我要访问谁,那么我接下来要看第一层的 右,然后接下来就是我这个文章的重点,就是我把这个第一层的 右 视为第二层的 根,写了个等号,然后箭头画下来,从第一层的 右 指向 第二层的 左,这代表着从第一层的 右 接下来要找第二层的 左,看看它能不能访问。假设到了第三层了,没有左节点了,那么就停了,那么一个单横线箭头从第三层的 左 指向 第三层的 根,表示先访问第三层的 左 再访问 第三层的根……后序线索树的那个也可以使用双横线箭头直接从第一层的 左 指向第二层的 左,嗯,其实我画图标准是没统一的,比如层数啊,结点布置啊啥的hhh反正大概就是这么个意思

总之,哎,看图,只看 根,就知道怎么找后继了

作图标准稍微统一一点的

在这里插入图片描述

作图标准稍微不统一一点的

在这里插入图片描述

知道了怎么找线索树的后继之后,就能够遍历线索树了

遍历线索树的方法:

1.先使用先序/中序/后序遍历找到二叉树的第一个访问的节点,这个节点就是遍历线索树要访问的第一个节点
2.从第一个节点开始,如果 rtag == 1,说明右链域直接指向后继;否则需要根据后继规律寻找后继


以前写过关于线索树的
当时其实没有一定要学懂,所以其实学了一知半解
https://blog.youkuaiyun.com/PriceCheap/article/details/120754437

现在看了王道……嗯……王道里面也没有详细讲
这个文章就是自己在重新推导的时候找到了以前的思路,然后完善了一些hhh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值