前言
这是我听老师讲课做的笔记。
作者:RodmaChen
关注我的csdn博客,更多数据结构与算法知识还在更新
线索二叉树
LTag
和RTag
表示的就是标志,当LTag
等于0
,那么lchild
的指针域就指向左孩子,如果等于1
,就说明没有孩子,就放他的前驱(前驱就是他的父节点,后继就是遍历序列后一个数)。
相关的概念和定义
- 线索:指向结点前驱和后继的指针,叫做线索。
- 线索链表: 以这种结点结构(上图,五个域)构成的二叉链表作为二叉树的存储结构,叫做线索链表。
- 线索二叉树(Threaded Binary Tree) :加上线索的二叉
树称之为线索二叉树。 - 线索化:对二叉树以某种次序遍历使其变为线索二叉
树的过程叫做线索化。
边学边练
(1)画出图(a)的先序、中序、后序线索化
解题思路:先写遍历序列在画图
解题答案:
先序序列:ABDCEFGHI
中序序列:DBAFECHGI
后序序列:DBFEHIGCA
画图:其中实线为指针(指向左、右子树),虚线为线索(指向前驱和后继)。
(2)已知一棵完全二叉树的第6层(设根为第1层)有8个叶结
点,则该完全二叉树的结点个数最多是(c)考研题难度
A.39 B.52 C.111 D.119
这道题有两个坑:
第一个:他不只有六层
第二个:并没有说第六层只有八个结点
解题思路:
1.第6层最多的结点是2^5
,由于有8
个叶子结点,所以还有24
个结点是空的或者是存在的。
2.由于要有最多的结点,则说明还有第7层(叶子结点是最后一个),第7层结点数是24x2
个,所以最多有 2^6-1+24x2
(3)对于前序遍历与中序遍历结果相同的二叉树为(F); 对于前序遍历和后序遍历结果相同的二叉树为(B)。
A.一般二叉树
B.只有根结点的二叉
C.根结点无左孩子的二叉树
D.根结点无右孩子的二叉树
E.所有结点只有左子数的二叉树
F.所有结点只有右子树的二叉树
N0R
0NR
NLR
LRN
(4) 一棵左子树为空的二叉树在先序线索化后,其中
空的链域的个数是:( )
A.不确定 B. 0 C. 1 D. 2
思路:前驱后继
总结
本人博客:https://blog.csdn.net/weixin_46654114
本人b站求关注:https://space.bilibili.com/391105864
转载说明:跟我说明,务必注明来源,附带本人博客连接。
请给我点个赞鼓励我吧