线索二叉树

1.什么是线索二叉树?

  在有n个结点的二叉链表中必定存在n+1个空指针域,因此可以利用这些空指针域存放指向结点的某种遍历次序下的前趋和后继结点的指针,这种指向前趋和后继结点的指针称为“线索”,加上线索的二叉链表称为线索链表,相应的二叉树被称为线索二叉树。

2.线索二叉树有何作用?

  有了二叉树不就足够了吗?那为什么还要弄个线索二叉树出来呢?

  在原来的二叉链表中,查找结点的左,右孩子可以直接实现,可是如果要找该结点的前趋和后继结点呢?这就变得非常困难,所以为了实现这个常见的需求,我们要在每个结点中增加两个指针域来存放遍历时得到的前趋和后继结点,这样就可以通过该指针直接或间接访问其前趋和后继结点。

 3.如何把一个二叉树线索化?

  按某种次序遍历二叉树,在遍历过程中用线索取代空指针即可。

  下面是线索二叉树线索二叉链表示意图,它可以帮助我们更好地理解线索二叉树。

可以看到线索二叉树,其实就是把一棵二叉树变成了一个双向链表,这对于插入和删除,查找某个结点都是很方便的。

原文地址:https://www.cnblogs.com/GumpYan/p/5750728.html