李永乐 数学讲师
广受学生信赖的“线代王”
天任考研小编为大家整理了“24考研计算机知识:如何在线索树中找结点的后继”相关内容,为报考计算机专业的考生们提供指导。更多有关计算机考研干货可关注考研备考栏目。
24考研计算机知识:如何在线索树中找结点的后继
下面和大家分享一下基本原理:如何在线索树中找结点的后继?
(1)中序线索树中找结点的后继
①树中所有叶子结点的右链是线索,则右链域直接指示了结点的后继。
②树中所有非终端结点的右链均为指针,根据中序遍历的规律,结点的后继应是遍历其右子树时访问的第一个结点,即右子树中左下的结点。
反之,在中序线索树中找结点前驱的规律是:若其左标志为“1”,则左链为线索,指示其前驱,否则遍历左子树时后访问的一个结点(左子树中右下的结点)为其前驱。
(2)后序线索树中找结点后继
①若结点x是二叉树的根,则其后继为空;
②若结点x是其双亲的右孩子或是其双亲的左孩子且其双亲没有右子树,则其后继即为双亲结点;
③若结点x是其双亲的左孩子,且其双亲有右子树,则其后继为双亲的右子树上按后序遍历列出的第一个结点。
可见,在后序线索化树上找后继时需知道结点双亲,即需带标志域的三叉链表作存储结构。
后给大家留一个题目,希望可以帮助各位小伙伴们检验一下知识点的掌握情况。
二叉树在线索化后,仍不能有效求解的问题是( )。
A.先序线索二叉树中求先序后继
B.中序线索二叉树中求中序后继
C.中序线索二叉树中求中序前驱
D.后序线索二又树中求后序后继
小伙伴们,看到这里的时候相信大家已经有了自己的答案,在这里我们对一下正确选项:D。简单分析一下:不是每个结点线索都可以直接找到它的前驱和后继。在先序线索二叉树中查找一个结点的先序后继很简单,而查找先序前驱必须知道该结点的双亲结点。中序线索二叉树中根据中序遍历的规律查找中序前驱和中序后继也是很方便的。同样,在后序线索二叉树中查找一个结点的后序前驱也很简单,而查找后序后继也必须知道该结点的双亲结点,而二叉链表中没有存放双亲的指针。
以上是天任考研小编为大家带来的“24考研计算机知识:如何在线索树中找结点的后继”,希望考生们都能备考顺利,考上自己心仪的院校。