首先我们来看一张图,这是我们上一篇二叉树的链式存储结构示意图。
二叉树链式结构.png
从图中可以看出来,有很多指针域是用^表示的,这是因为对应的指针域并没有指向,这样对内存空间确实是一个很大的浪费。对于一个有n个结点的二叉树,一共会有2n个结点,而n个结点有n-1条分支,所以会有2n-(n-1) = n+1个空指针域。
当我们想要知道一个结点在前序遍历序列中的前驱结点和后继结点的时候只能通过遍历二叉树才能知道,那么我们是否可以通过这些空指针域来做记录从而达到节省内存空间的目的呢?答案是肯定的,我们把这种指向前驱和后继的指针称为线索,加上线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树。对二叉树进行某种次序的遍历,使其变为线索二叉树的过程称为线索化。下面我们就通过对中序遍历的二叉树示意图进行分析来看看如何线索化二叉树。













网友评论