我发了一个新的关于中序线索树的,整理得更加清晰
还实现了找前驱后继,并遍历
点连接就能跳转

在中序遍历建立线索二叉树中,就是设立一个pre,指向上一个visit的结点,如果他的右孩子是空的&&pre!=空,就改变标志位,指向后继
p指向最新visit的结点,如果p的左孩子是空的,就改变标志位,指向他的前驱

在处理最后一个结点的时候,我写的和视频里面不一样,但我觉得我的也对,结果看了书之后,发现书上和我写的一样,送的视频好像是之前的,可能有出入吧,反正对就行了

#include<iostream>
using namespace std;typedef struct Treenode {int data;struct Treenode* lchild, * rchild;int ltag, rtag;
}Treenode,* Tree;Treenode* pre = NULL;void visit(Tree T) {if (T->lchild == NULL) {T->ltag = 1;T->lchild = pre;//第一个左孩子为空,前驱为null}if (pre!=NULL&&pre->rchild == NULL) {pre->rchild = T;//后继,就让pre的→指向ppre->rtag = 1;}pre = T;//保持在T的后面//只需考虑每次的visit,结点关系//最后一个结点需要有孩子指向NULL}//中序线索化
void pre_order(Tree& T) {if (T != NULL) {pre_order(T->lchild);visit(T);pre_order(T->rchild);}
}//中序线索化
void midorder(Tree& T) {if (T != NULL) {pre_order(T);pre->rchild = NULL;//处理最后一个结点pre->rtag = 1;/*if (pre->lchild == NULL)pre->rtag = 1;*///我觉得和这个是一个效果}
}

23王道——中序线索树相关推荐

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

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

  2. 为什么先序/中序线索二叉树不需要栈的支持,而后序线索二叉树需要栈的支持?

    为什么先序/中序线索二叉树不需要栈的支持,而后序线索二叉树需要栈的支持? 首先要明确两点 先序线索二叉树的缺点:无法找到先序序列中某结点的前驱 后序线索二叉树的缺点:无法找到后序序列中某结点的后继 中 ...

  3. 线索二叉树 C语言 数据结构 先序线索二叉树 中序线索二叉树 后序线索二叉树

    在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序.中序.后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化. 文章目录 一.c语言实现先序线索.中序线 ...

  4. 数据结构: 试用判定树的方法给出在中序线索化二叉树上: (1) 如何搜索指定结点的在中序下的后继。 (2) 如何搜索指定结点的在前序下的后继。(3) 如何搜索指定结点的在后序下的后继。

    题目 试用判定树的方法给出在中序线索化二叉树上: (1) 如何搜索指定结点的在中序下的后继. (2) 如何搜索指定结点的在前序下的后继. (3) 如何搜索指定结点的在后序下的后继. 分析 这是殷人昆& ...

  5. 线索二叉树:中序线索二叉树的遍历

    线索二叉树:中序线索二叉树的遍历 作者: 冯向阳时间限制: 1S章节: DS:树 截止日期: 2022-06-30 23:55:00 问题描述 : 目的:使用C++模板设计中序线索二叉树的抽象数据类型 ...

  6. (c语言)二叉树中序线索(数据结构十七)

    1.数据类型定义 在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态.在head.h头文件中有如下定义: //定义数据结构中要用到的一些变量和类型 #ifndef HEA ...

  7. node 获取表单数据 为空_程序员:数据结构和算法,中序线索化二叉树

    1.中序线索化二叉树   创建如上的二叉树,线索化二叉树时,根据指定的遍历方式得到的节点的访问顺序,一个节点前面的节点,叫做前驱节点,一个节点后面的节点,叫做后继节点.   线索化二叉树的规则:   ...

  8. 中序线索二叉树(C语言实现)

    目录 1.线索二叉树的定义: 2.线索二叉树的存储结构: 3.创建中序线索二叉树 4.遍历中序线索二叉树 5.在中序线索二叉树上查找任意结点的中序前驱结点 6.在中序线索二叉树上查找任意结点的中序后继 ...

  9. C语言实现二叉树的中序线索化及遍历中序线索二叉树

    C语言实现二叉树的线索化以及如何遍历线索二叉树! 文章目录 线索二叉树的结构及数据类型定义 根据输入结点初始化二叉树 中序遍历二叉树并线索化 遍历中序线索二叉树 项目完整代码 项目完整代码(改进版) ...

  10. 数据结构2:中序线索化二叉树为什么要通过pre设置后继结点

    在听尚硅谷韩顺平老师课程的时候这个地方没有理解,先把java中序线索化二叉树代码附上: private HeroNode pre = null;//在递归线索化,pre总是保留前一个结点 /**** ...

最新文章

  1. 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
  2. VTK:图片之FillWindow
  3. Training—Managing Audio Playback
  4. 模块化加载_前端模块化概述
  5. 高德推出查岗功能_高德查岗功能怎么用 「家人地图」新功能_位置在哪
  6. 编译器与解释器的区别和工作原理
  7. JAVA之stream汪文君_Java8新特性之Stream API
  8. JAVA抛出异常的三种形式
  9. 中药槲皮素-AKT1与木犀草素IL6/VEGFA直接结合抑制骨关节炎
  10. Python个人快速入门学习(九)jieba库的使用
  11. NNDL 实验五 前馈神经网络(2)自动梯度计算 优化问题
  12. 陈抟(tuán)《心相篇》
  13. python抠图太模糊,讲实话,我会Python之后!我都不屑用PS了!Python抠图太方便了!...
  14. resnet_unetpp
  15. 写给自己的Java程序员学习路线图
  16. 【搜索】洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins
  17. C++实现1.交换两个整形变量的内容.2.不创建临时变量的条件下,交换两个数的内容.3.求是个整数中的最大值.4.将三个数按从大到小输出.5.求两个数的最大公约数.
  18. 员工办事指南(社保公积金)
  19. First Order Motion Model for Image Animation
  20. 阿里云联合广东办政务数据创新大赛 用人工智能接管卫星做国土监察

热门文章

  1. vnc远程软件,盘点六款你值得拥有的vnc远程软件
  2. VNC远程控制软件,VNC远程控制软件如何实现批量管理服务器
  3. 【供应链架构day8】履约系统的架构长什么样子:从需求开始讲起
  4. 苹果电脑python编译器_Mac版-python环境配置(二):编译器pycharm下载安装
  5. BERT模型深度解析
  6. es 创建索引 指定id_简单操作elasticsearch(es版本7.6)
  7. 尺缩钟慢之动钟变慢——思想实验推导狭义相对论(七)
  8. Pr:Lumetri 颜色
  9. 2014年9月-前端开发月刊
  10. 可视化常用效果,js+css 实现人物百分比、象形图