线索二叉树
对于二叉树的遍历可以看做是对二叉树按照某种规则的线性化。即的到原结构的线性序列,使得出去两端节点,每个节点都有前驱和后缀
寻找前驱和后缀的方式有两种
一 如同前两节所讲的,按照某序对二叉树尽心遍历,但是这种方法比较浪费时间,寻找一个点的前驱和后缀可能要遍历整个树,所以说这种方法效率不高
二 给每个节点增加两个指针分别指向前驱和后缀,但是这增加了存储空间的开销
新的方式:
有人注意到n个节点的二叉树中有n+1个指针域是空的(叶节点中的指针)
所以说可以利用这些指针域来指向某序的前驱和后缀这种二叉树被称为线索二叉树
线索二叉树分为以下三种
前序线索二叉树
中序线索二叉树
后序线索二叉树
线索二叉树节点的定义如下:
| Lchild | Ltag | data | Rtag | Rchild |
Ltag=0 LChild指向左子树
Ltag=1 Lchild指向某序下的前驱
Rtag=0 RChild指向右子树
Rtag=1 RChild指向某序下的直接后驱
浙公网安备 33010602011771号