这篇文章,主要介绍数据结构之线索二叉树介绍及其线索化。
目录
一、线索二叉树
1.1、前驱和后继结点
二叉树如果使用二叉链表的方式实现,那么具有n个结点的二叉树,就会存在【n+1】个空链域,如果我们可以利用这【n+1】个空链域来保存一些数据,那么这样不仅可以节约内存空间,而且可以提高二叉树的查找效率。
那么这些空链域用来保存什么数据呢???
我们可以看到,二叉链表可以快速的找到某个结点的左孩子、右孩子,但是如果要寻找某个结点的前驱、后继结点的时候,就需要从根结点开始遍历,这需要【O(n)】的时间复杂度,这个时候,我们如果可以将【n+1】个空链域用来保存当前结点的前驱和后继结点,那么查找的时候,只需要花费【O(1)】的时间复杂度。
这里的前驱和后继结点如何得知???
这里的前驱结点、后继结点,指得是二叉树在某个遍历序列中的前后结点,什么意思呢,下面看个案例。