线索二叉树是一种()构。

题目
单选题
线索二叉树是一种()构。
A

逻辑

B

逻辑和存储

C

物理

D

线性

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

( 13 )如果将该二叉树存储为对称序线索二叉树,则结点 E 的右线索指向结点

A ) A

B ) B

C ) C

D ) D


正确答案:A

第2题:

线索二叉树 名词解释


参考答案:利用二叉树的一些空闲指针指向该结点的前驱或后继,这种指针叫线索,线索后了的二叉树,称为线索二叉树.

第3题:

对n个结点的线索二叉树,线索有()个。


参考答案:n+1

第4题:

线索二叉树是一种( )结构。

A.逻辑

B.存储

C.线性

D.物理


正确答案:D

第5题:

如果将该二叉树存储为对称序线索二叉树,则节点H的左线索指向______。

A.节点A

B.节点C

C.节点E

D.节点G


正确答案:B

第6题:

二叉树的后序排列DBEFCA,中序排列DBAECF,那么对其做先序线索化二叉树,节点E的线索化指向节点()

A.BC

B.AC

C.DF

D.CF


正确答案:D

第7题:

二叉树在线索化后,仍不能有效求解的问题是()。

A、前序线索二叉树中求前序后继

B、中序线索二叉树中求中序前驱

C、中序线索二叉树中求中序后继

D、后序线索二叉树中求后序后继


参考答案:D

第8题:

(15)如果将该二叉树存储为对称序线索二叉树,则结点C的左线索指向( )。

A)结点A

B)结点B

C)结点E

D)结点G


正确答案:A

(15)【答案】A)
【解析】在结点的空指针域中存放的该结点在某种遍历次序下的前驱或后继结点的指针叫做线索(thread),其中在空的左指针域存放的指向其前驱结点的指针叫做左线索,空的指针域存放的指向其后的指针叫做右线索。对一棵二叉树中的所有结点空指针 域按照某种遍历次序加线索的过程叫做线索化,被线索化了的二叉树称作结索二叉树,将二叉树存储为对称序线索二叉树,则结点C的左线索指向其中序遍历前驱结点A。

第9题:

关于各种非空线索二叉树中空指针的个数有如下说法:

①任一非空先序线索二叉树有2个空指针。

②任一非空中序线索二叉树有2个空指针。

③任一非空后序线索二叉树有2个空指针。

其中说法准确的个数是(5)。

A.0

B.1

C.2

D.3


正确答案:B
解析:非空先序线索二叉树有1或2个空指针,如图13-39所示。

易知,先序序列的最后一个结点一定是叶子结点,该结点无后继,于是其右指针为空。先序序列的第一个结点一定是根结点,其无前驱,若根结点无左子树,显然其左指针为空,同时注意到,第一个结点的右指针、最后一个结点的左指针以及夹在第一个结点(根结点)和最后一个结点之间的任一结点的左右指针不是指向其左右子树便是指向前驱或后继的线索,均非空,于是该树中共有2个空指针;若根结点有左子树,那么根结点的左指针指向其左子树,同时也注意到,第一个结点(根结点)的右指针、最后一个结点的左指针以及夹在第一个结点和最后一个结点之间的任一结点的左右指针不是指向其左右子树便是指向前驱或后继的线索,均非空,于是该树中便只有一个非空指针。因此①错误。易知,任一非空中序线索二叉树中,中序遍历的第一个结点肯定是左子树为空的结点,它无前驱,其左指针为空;最后一个结点肯定是右子树为空的结点,它无后继,其右指针为空;第一个结点的右指针、最后一个结点的左指针以及夹在第一个结点和最后一个结点之间的任一结点的左右指针不是指向其左右子树便是指向前驱或后继的线索,均非空。因此,空指针一定是2个。因此②准确。非空后序线索二叉树有1或2个空指针(如图13—40所示)。

其推理论证类似于非空先序线索二叉树,在此不再赘述。因此③不准确。

第10题:

下列各种线索二叉树中,采用二叉链表存储,遍历时仍需要栈的支持的是(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就需要栈的支持。