设一棵二叉树有 n 个结点,则有 n-1 条边(指针连线) , 而 n 个结点共有 2n 个指针域
(Lchild 和 Rchild) ,显然有 n+1 个空闲指针域未用。则可以利用这些空闲的指针域来存放结
点的直接前驱和直接后继信息。
为避免混淆,对结点结构加以改进,增加两个标志域,如图所示。用这种结点结构构成
的二叉树的存储结构;叫做线索链表;指向结点前驱和后继的指针叫做线索;
2、线索二叉树的构建
按照某种次序遍历,加上线索的二叉树称之为线索二叉树。线索化二叉树: 二叉树的线
索化指的是依照某种遍历次序使二叉树成为线索二叉树的过程。
线索化的过程就是在遍历过程中修改空指针使其指向直接前驱或直接后继的过程。
【2013 年】若 X 是后序线索二叉树中的叶结点,且 X 存在左兄弟结点 Y,则 X 的右
线索指向的是______。
A. X 的父结点 B. 以 Y 为根的子树的最左下结点
C. X 的左兄弟结点 Y D. 以 Y 为根的子树的最右下结点
【2014 年】若对如下的二叉树进行中序线索化,则结点 x 的左、右线索指向的结点分
别是______。
A.e、c B.e、a C.d、c D.b、a 考点 14:树和二叉树(★★★)
1、树转化为二叉树
对于一般的树,可以方便地转换成一棵唯一的二叉树与之对应。将树转换成二叉树在“孩
子兄弟表示法”中已给出,其详细步骤是:
⑴ 加虚线。在树的每层按从“左至右”的顺序在兄弟结点之间加虚线相连。
⑵ 去连线。除最左的第一个子结点外,父结点与所有其它子结点的连线都去掉。
⑶ 旋转。将树顺时针旋转 450,原有的实线左斜。
⑷ 整型。将旋转后树中的所有虚线改为实线,并向右斜。
这样转换后的二叉树的特点是:
◆ 二叉树的根结点没有右子树,只有左子树;
◆ 左子结点仍然是原来树中相应结点的左子结点,而所有沿右链往下的右子结点均是原来
树中该结点的兄弟结点。
由于二叉树和树都可用二叉链表作为存储结构,对比各自的结点结构可以看出,以二叉
链表作为媒介可以导出树和二叉树之间的一个对应关系。
◆ 从物理结构来看,树和二叉树的二叉链表是相同的,只是对指针的逻辑解释不同而已。
◆ 从树的二叉链表表示的定义可知,任何一棵和树对应的二叉树,其右子树一定为空。