23王道——中序线索树
我发了一个新的关于中序线索树的,整理得更加清晰
还实现了找前驱后继,并遍历
点连接就能跳转
在中序遍历建立线索二叉树中,就是设立一个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王道——中序线索树相关推荐
- 中序线索树和后序线索树
约定 Node* Bool Data Bool Node* lchild LTag data RTag rchild LTag=0 时lchild指向左儿子: LTag=1 时lchild指向前驱: ...
- 为什么先序/中序线索二叉树不需要栈的支持,而后序线索二叉树需要栈的支持?
为什么先序/中序线索二叉树不需要栈的支持,而后序线索二叉树需要栈的支持? 首先要明确两点 先序线索二叉树的缺点:无法找到先序序列中某结点的前驱 后序线索二叉树的缺点:无法找到后序序列中某结点的后继 中 ...
- 线索二叉树 C语言 数据结构 先序线索二叉树 中序线索二叉树 后序线索二叉树
在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序.中序.后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化. 文章目录 一.c语言实现先序线索.中序线 ...
- 数据结构: 试用判定树的方法给出在中序线索化二叉树上: (1) 如何搜索指定结点的在中序下的后继。 (2) 如何搜索指定结点的在前序下的后继。(3) 如何搜索指定结点的在后序下的后继。
题目 试用判定树的方法给出在中序线索化二叉树上: (1) 如何搜索指定结点的在中序下的后继. (2) 如何搜索指定结点的在前序下的后继. (3) 如何搜索指定结点的在后序下的后继. 分析 这是殷人昆& ...
- 线索二叉树:中序线索二叉树的遍历
线索二叉树:中序线索二叉树的遍历 作者: 冯向阳时间限制: 1S章节: DS:树 截止日期: 2022-06-30 23:55:00 问题描述 : 目的:使用C++模板设计中序线索二叉树的抽象数据类型 ...
- (c语言)二叉树中序线索(数据结构十七)
1.数据类型定义 在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态.在head.h头文件中有如下定义: //定义数据结构中要用到的一些变量和类型 #ifndef HEA ...
- node 获取表单数据 为空_程序员:数据结构和算法,中序线索化二叉树
1.中序线索化二叉树 创建如上的二叉树,线索化二叉树时,根据指定的遍历方式得到的节点的访问顺序,一个节点前面的节点,叫做前驱节点,一个节点后面的节点,叫做后继节点. 线索化二叉树的规则: ...
- 中序线索二叉树(C语言实现)
目录 1.线索二叉树的定义: 2.线索二叉树的存储结构: 3.创建中序线索二叉树 4.遍历中序线索二叉树 5.在中序线索二叉树上查找任意结点的中序前驱结点 6.在中序线索二叉树上查找任意结点的中序后继 ...
- C语言实现二叉树的中序线索化及遍历中序线索二叉树
C语言实现二叉树的线索化以及如何遍历线索二叉树! 文章目录 线索二叉树的结构及数据类型定义 根据输入结点初始化二叉树 中序遍历二叉树并线索化 遍历中序线索二叉树 项目完整代码 项目完整代码(改进版) ...
- 数据结构2:中序线索化二叉树为什么要通过pre设置后继结点
在听尚硅谷韩顺平老师课程的时候这个地方没有理解,先把java中序线索化二叉树代码附上: private HeroNode pre = null;//在递归线索化,pre总是保留前一个结点 /**** ...
最新文章
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- VTK:图片之FillWindow
- Training—Managing Audio Playback
- 模块化加载_前端模块化概述
- 高德推出查岗功能_高德查岗功能怎么用 「家人地图」新功能_位置在哪
- 编译器与解释器的区别和工作原理
- JAVA之stream汪文君_Java8新特性之Stream API
- JAVA抛出异常的三种形式
- 中药槲皮素-AKT1与木犀草素IL6/VEGFA直接结合抑制骨关节炎
- Python个人快速入门学习(九)jieba库的使用
- NNDL 实验五 前馈神经网络(2)自动梯度计算 优化问题
- 陈抟(tuán)《心相篇》
- python抠图太模糊,讲实话,我会Python之后!我都不屑用PS了!Python抠图太方便了!...
- resnet_unetpp
- 写给自己的Java程序员学习路线图
- 【搜索】洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins
- C++实现1.交换两个整形变量的内容.2.不创建临时变量的条件下,交换两个数的内容.3.求是个整数中的最大值.4.将三个数按从大到小输出.5.求两个数的最大公约数.
- 员工办事指南(社保公积金)
- First Order Motion Model for Image Animation
- 阿里云联合广东办政务数据创新大赛 用人工智能接管卫星做国土监察
热门文章
- vnc远程软件,盘点六款你值得拥有的vnc远程软件
- VNC远程控制软件,VNC远程控制软件如何实现批量管理服务器
- 【供应链架构day8】履约系统的架构长什么样子:从需求开始讲起
- 苹果电脑python编译器_Mac版-python环境配置(二):编译器pycharm下载安装
- BERT模型深度解析
- es 创建索引 指定id_简单操作elasticsearch(es版本7.6)
- 尺缩钟慢之动钟变慢——思想实验推导狭义相对论(七)
- Pr:Lumetri 颜色
- 2014年9月-前端开发月刊
- 可视化常用效果,js+css 实现人物百分比、象形图