线索二叉树
【摘要】 线索二叉树概念——普通二叉树缺点1、普通二叉树在遍历的时候必须从根节点出发,不能从其中某一点开始遍历。2、普通二叉树不能快速的找到某个结点的前驱。(可以实现,思路如下)从根结点出发,重新进行一次中序遍历,指针q记录当前访问的结点,指针pre记录上一个被访的结点 ①当 q == p 时,pre为前驱 ②当 pre == p 时,q为后继缺点是找前驱,后继操作不方便:遍历操作必须从根开...
线索二叉树概念
——普通二叉树缺点
1、普通二叉树在遍历的时候必须从根节点出发,不能从其中某一点开始遍历。
2、普通二叉树不能快速的找到某个结点的前驱。(可以实现,思路如下)
从根结点出发,重新进行一次中序遍历,指针q记录当前访问的结点,指针pre记录上一个被访的结点 ①当 q == p 时,pre为前驱
②当 pre == p 时,q为后继
缺点是找前驱,后继操作不方便:遍历操作必须从根开始
——中序线索二叉树
n个结点的二叉树,有n+1个空链域!可以用来记录n个前驱、后继的信息
指向前驱、后继的指针称为线索
图示说明
代码如下
tag == 0 ,表示指针是指向孩子
tag == 1,表示指针是指向“线索”
——先序线索二叉树
和上同理
——后序线索二叉树
和上同理
—— 三种线索二叉树的比较
二叉树的线索化
用土方法找到中序遍历前驱
普通方法代码
中序线索化代码
当ltag = 0,rtag = 0 的时候,表示没有被线索化
先序线索化代码
后序线索二叉树代码
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)