2021计算机考研:如何在线索树中找结点的后继?
对于大多数2021考生来说考研还是最初的准备阶段,基本上还没有进入复习节奏,而对于计算机专业课的复习,相对来说还更早一些。为了以后复习不那么吃力,现在可以先了解一下。下面小编整理的“2021计算机考研:如何在线索树中找结点的后继?”相关文章,希望对大家有所帮助。
各位计算机考研的小伙伴们,大家好。很开心以这样的方式和大家分享计算机考研的相关知识。今天给大家带来的内容是考研数据结构中经常遇到的一个难点问题:如何在线索树中找结点的后继?虽然有些题目设置的灵活多变,有的时候甚至可能分析不出来题目的考点在这里。
下面和大家分享一下基本原理:如何在线索树中找结点的后继?
(1)中序线索树中找结点的后继
①树中所有叶子结点的右链是线索,则右链域直接指示了结点的后继。
②树中所有非终端结点的右链均为指针,根据中序遍历的规律,结点的后继应是遍历其右子树时访问的第一个结点,即右子树中最左下的结点。
反之,在中序线索树中找结点前驱的规律是:若其左标志为“1”,则左链为线索,指示其前驱,否则遍历左子树时最后访问的一个结点(左子树中最右下的结点)为其前驱。
(2)后序线索树中找结点后继
①若结点x是二叉树的根,则其后继为空
②若结点x是其双亲的右孩子或是其双亲的左孩子且其双亲没有右子树,则其后继即为双亲结点
③若结点x是其双亲的左孩子,且其双亲有右子树,则其后继为双亲的右子树上按后序遍历列出的第一个结点。
可见,在后序线索化树上找后继时需知道结点双亲,即需带标志域的三叉链表作存储结构。
最后给大家留一个题目,希望可以帮助各位小伙伴们检验一下知识点的掌握情况。
二叉树在线索化后,仍不能有效求解的问题是( )。
A.先序线索二叉树中求先序后继
B.中序线索二叉树中求中序后继
C.中序线索二叉树中求中序前驱
D.后序线索二又树中求后序后继
小伙伴们,看到这里的时候相信大家已经有了自己的答案,在这里我们对一下正确选项:D。简单分析一下:不是每个结点经过线索都可以直接找到它的前驱和后继。在先序线索二叉树中查找一个结点的先序后继很简单,而查找先序前驱必须知道该结点的双亲结点。中序线索二叉树中根据中序遍历的规律查找中序前驱和中序后继也是很方便的。同样,在后序线索二叉树中查找一个结点的后序前驱也很简单,而查找后序后继也必须知道该结点的双亲结点,而二叉链表中没有存放双亲的指针。
最后希望各位小伙伴们在考研的路上不断迈进,继续加油,我们下次再见。
以上就是小编整理的“2021计算机考研:如何在线索树中找结点的后继?”相关内容,希望对大家有所帮助,预祝大家能考上理想的院校。