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

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

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

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

作图标准稍微统一一点的

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

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

遍历线索树的方法:

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


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

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

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

  1. 数据结构---二叉线索树

    数据结构-二叉线索树 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> typedef struct bmTree {i ...

  2. 二叉树前序中序后续线索树_后序线索二叉树怎么画 线索二叉树基本操作详解 - 办公软件 - 服务器之家...

    后序线索二叉树怎么画 线索二叉树基本操作详解 发布时间:2017-05-23 来源:服务器之家 遍历二叉树是以一定规则将二叉树中结点排列成一个线性序列,得到二叉树中结点的先序,中序或后序序列.这实际上 ...

  3. 第10周项目实践 线索二叉树的建立及遍历

    typedef struct node {     Elemtype date;     int ltag,rtag;     struct node lchild;     struct node ...

  4. 中序线索树和后序线索树

    约定 Node* Bool Data Bool Node* lchild LTag data RTag rchild LTag=0 时lchild指向左儿子: LTag=1 时lchild指向前驱: ...

  5. 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树

    [本文谢绝转载,原文来自http://990487026.blog.51cto.com] 树 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树二叉树的创建,关系建立二叉树的创建 ...

  6. 线索树找*p的中序后继且中序遍历 二叉线索树

    //线索树找*p的中序后继且中序遍历 二叉线索树 #define thread 1 #define link 0 typedef struct Bt{char data;struct Bt *lc;/ ...

  7. 程序员面试题精选100题(06)-二元查找树的后序遍历结果[数据结构]

    题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果.如果是返回true,否则返回false. 例如输入5.7.6.9.11.10.8,由于这一整数序列是如下树的后序遍历结果: 8   ...

  8. 【数据结构Note5】- 树和二叉树(知识点超细大全-涵盖常见算法 排序二叉树 线索二叉树 平衡二叉树 哈夫曼树)

    文章目录 5.1 树和二叉树引入 5.1.1 树的概念 5.1.2 树的表示 5.1.3 树中基本术语 5.2 二叉树 5.2.1 概念 5.2.2 二叉树的性质 5.2.3 特殊的二叉树 5.2.4 ...

  9. 数据结构—2-3树、2-3-4树、B树、B+树等多路查找树的原理详解

    详细介绍了多路查找树中的2-3树.2-3-4树.B树.B+树的概念的区别,以及它们的应用场景. 文章目录 1 多路查找树的概述 1.1 索引概述 1.2 多路查找树的引出 2 2-3树 2.1 2-3 ...

最新文章

  1. 开源分布式Job系统,调度与业务分离-如何创建一个计划HttpJob任务
  2. 主分支和'起源/主人'有分歧,如何'疏远'分支'?
  3. 微软安全管理解决方案 为企业安全保驾护航
  4. 108. 奇数码问题【思维 / 逆序对】
  5. docker报错解决办法:Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp
  6. linux compress参数,compress命令_Linux compress 命令用法详解:使用Lempress-Ziv编码压缩数据文件...
  7. 认识事件冒泡和事件捕获
  8. 建立企业内部maven服务器并使用Android Studio发布公共项目
  9. py-R-FCN安装
  10. Tomcat服务器时间不正确
  11. 6-Hadoop之旅-Hive(二)
  12. LINUX上传下载小工具lrzsz
  13. C# 制作一个定时关机小软件
  14. Linux命令中CVf参数代表什么,Linux tar 命令使用参数详解
  15. 普及ERP不靠低价风暴(转)
  16. 如何使用MATLAB coder将MATLAB代码转换成C/C++语言(详细图文教程)
  17. 深度学习:行为识别综述
  18. cocos creator 学习随笔 day03 节点和组件属性
  19. 印章与印鉴的区别_篆刻与印章有区别
  20. 【兄弟连】二、Linux系统安装

热门文章

  1. Eclipse的SVN使用
  2. UML类图操作(二)
  3. springboot项目根据不同的环境启动不同的配置,如开发环境dev,测试环境sit,生产环境application...
  4. 对过去css+div的总结
  5. Activiti - 新一代的开源BPM引擎
  6. 实现一个符合 Promise/A+ 规范的 MyPromise
  7. 如何用Vue实现一个全选指令
  8. [linux学习] 字符界面linux安装vmtools
  9. mysql 实现master-slave 同步
  10. Linux下监控网卡流量的软件iftop