早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->
下列各种线索二叉树中,采用二叉链表存储,遍历时仍需要栈的支持的是(9)。A.前序线索二叉树B.中序线
题目
下列各种线索二叉树中,采用二叉链表存储,遍历时仍需要栈的支持的是(9)。
A.前序线索二叉树
B.中序线索二叉树
C.后序线索二叉树
D.前、后、中序线索二叉树
参考答案
正确答案:C
解析:易知,前、中、后序遍历二叉树的递归或者非递归算法都用到栈。遍历线索二叉树实际上就是找结点的后继。前序线索二叉树中,除前序遍历最后一个元素无后继外。任一结点的后继便为左孩子(若左子树非空)或者右孩子(若左子树为空)或者是其右线索(若该结点是叶子结点),只要顺着指针便可以方便地找到后继,显然不需要用到栈。中序线索二叉树中,除中序遍历最后一个元素无后继外,寻找任一结点的后继的过程如下:若该结点有右线索,则该右线索指示的便是后继;否则,该结点右子树最左下的结点便是后继。可以顺着该结点指向右子树的指针向下找到这个最左下的结点,不需要用栈。因此,遍历中序线索二叉树也不需要栈的支持。在后序线索二叉树中求后继要分三种情况来讨论:①若结点W是根结点,则W的后继为空;②若结点W是其双亲结点的右孩子,或者W是其双亲结点的左孩子且W的双亲没有右子树,则W的后继为其双亲结点;③若结点W是其双亲结点的左孩子且其双亲结点有右子树,则W的后继为其双亲结点右子树上按后序遍历的第一个结点。可见,在后序线索化树(以二叉链表存储)上找后继时需要知道结点双亲,这就需要栈的支持。如13-28所示,从后序遍历第一个结点E开始,顺着E的右线索可以找到E的后继D,当要找D的后继就麻烦了,因为这个时候D的两个指针都指向E,而B只有单向指向D的指针(不管用),因此要找到D的后继B就需要栈的支持。
解析:易知,前、中、后序遍历二叉树的递归或者非递归算法都用到栈。遍历线索二叉树实际上就是找结点的后继。前序线索二叉树中,除前序遍历最后一个元素无后继外。任一结点的后继便为左孩子(若左子树非空)或者右孩子(若左子树为空)或者是其右线索(若该结点是叶子结点),只要顺着指针便可以方便地找到后继,显然不需要用到栈。中序线索二叉树中,除中序遍历最后一个元素无后继外,寻找任一结点的后继的过程如下:若该结点有右线索,则该右线索指示的便是后继;否则,该结点右子树最左下的结点便是后继。可以顺着该结点指向右子树的指针向下找到这个最左下的结点,不需要用栈。因此,遍历中序线索二叉树也不需要栈的支持。在后序线索二叉树中求后继要分三种情况来讨论:①若结点W是根结点,则W的后继为空;②若结点W是其双亲结点的右孩子,或者W是其双亲结点的左孩子且W的双亲没有右子树,则W的后继为其双亲结点;③若结点W是其双亲结点的左孩子且其双亲结点有右子树,则W的后继为其双亲结点右子树上按后序遍历的第一个结点。可见,在后序线索化树(以二叉链表存储)上找后继时需要知道结点双亲,这就需要栈的支持。如13-28所示,从后序遍历第一个结点E开始,顺着E的右线索可以找到E的后继D,当要找D的后继就麻烦了,因为这个时候D的两个指针都指向E,而B只有单向指向D的指针(不管用),因此要找到D的后继B就需要栈的支持。
看了下列各种线索二叉树中,采用二叉...的网友还看了以下:
某钢铁厂全年头8个月就完成了全年的成产计划,那么全年可超产计划产量的()%学校食堂里用去存煤的30 数学 2020-05-21 …
在研究物体的运动时,下列物体可以当做质点处理的是()A研究百米赛跑撞线时的运动员B一个苹果,研究它 物理 2020-05-23 …
一个粮仓,原来存有一批粮食,远走2/5以后,又运进粮食5.5吨,这时的存粮恰好是原来存粮的80%, 数学 2020-06-03 …
中级钳工知识求答案判断题1、箱体工件划线时,如以中心十字线个为基准校正线,只要在第一次划线正确后, 其他 2020-06-30 …
关于瞬时速度与平均速度一汽车驶过斑马线时的速度是30km/h问:这个速度是瞬时速度还是平均速度?求 其他 2020-07-02 …
某岛国的一家银行每天9:00~17:00营业.正常情况下,每天9:00准备现金50万元,假设每小时 其他 2020-07-11 …
度数起点线时的经线和纬线是多少 其他 2020-07-13 …
某岛国的一家银行每天9:00-17:00营业.正常情况下,每天9:00准备现金50万元,假设每小时 数学 2020-07-20 …
有人将100元第一次按一年定期存入银行到期后,将本息和利息取出,并将其中50元存入银行还是按一年定 数学 2020-07-23 …
西方经济学高鸿业在谈到LM曲线时的货币政策无效或财政政策无效推理过程看不懂比如他说当利率很高,货币 其他 2020-07-26 …