树——二叉树的线索化
Posted swenw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树——二叉树的线索化相关的知识,希望对你有一定的参考价值。
关于树真的是非常的不好理解,看了很多其他人的博客,修修改改,拼拼凑凑。
为什么要将二叉树线索化?因为它有很多的空指针(n+1个),而每次我们在遍历二叉树的时候想找一个节点的前驱和后继都得把二叉树完全遍历一遍
可是如果有了一个标志,一个关于指向其前驱或者是后继的线索,那么就会高效很多。
typedef char TElemType;
typedef int Status;
typedef enum{
Link,Thread
}PointerTag;
typedef struct BitNode{
TElemType data;
struct BitNode *lchild,*rchild;
PointerTag LTag,RTag;
}BitNode,*BiTree;
线索化的实质就是将二叉链表中的空指针改为指向前驱或后继的线索
以上是关于树——二叉树的线索化的主要内容,如果未能解决你的问题,请参考以下文章
超强二叉树解析.必收藏!(数组,链表实现,8种遍历方法,前,中,后序线索化二叉树及其遍历)---风之java