设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有( )个。

admin2014-10-20  31

问题 设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有(    )个。

选项 A、n—1   
B、n
C、n+1
D、n+2

答案C

解析
增加两个指示域Ltag和Rtag,并分别定义如下:LTag:取值为0时,作用不变(指向左孩子),取值为1时,指示当前结点的前驱结点;RTag:取值为0时,作用不变(指向右孩子),取值为1时,指示当前结点的后继结点;
数据结构为:
typef enum PointerTag{Link,Thread};//Link:
指针,值为0;Thread:线索,值为1typedef struct BiThrNode;{TElemType data;struct BiThrNode*lchild,*rchild;//指向左孩子和右孩子PointerTag LTag,RTag;//左、右标志,它们的取值决定了lchild、rchiltl的指向含义}BiThrNode,
*BiThrTree;
以上述结构构成的二叉链表称为线索链表。线索链表中指向前驱结点和后继结点的指针,称为线索。加上线索的二叉树称为线索二叉树(Threaoled Binary Tree)。
对二叉树按照某种次序遍历从而使其变为线索二叉树的过程叫做线索化。
转载请注明原文地址:https://kaotiyun.com/show/5lvR777K
0

最新回复(0)