树的孩子兄弟表示法是一种二叉链表表示法。
第1题:
:A双亲表示法
B孩子链表表示法
C顺序存储表示法
D孩子兄弟表示法
第2题:
下列存储形式中,哪个不是树的存储形式( )。
A.双亲表示法
B.位示图法
C.广义表表示法
D.孩子兄弟表示法
第3题:
请认真阅读以下函数说明、图及C程序,将程序段中(1)~(7)空缺处的语句填写完整。
[说明]
一般的树结构常采用孩子—兄弟表示法表示,即用二叉链表做树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点。例如,如图1-15(a)所示树的孩子—兄弟表示如图1-15(b)所示。
函数LevelTraverse()的功能是对给定树进行层序遍历。例如,对如图1-15所示的树进行层序遍历时,节点的访问次序为D B A E F P C。
对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如表1-11所示。
Bool、Status类型定义如下:
树的二叉链表节点定义如下:
[C函数程序]
第4题:
在下列存储形式中,哪一个不是树的存储形式? ( )
A.孩子兄弟表示法
B.双亲表示法
C.顺序存储表示法
D.孩子链表表示法
第5题:
下列存储形式中,()是树的存储形式。
第6题:
若采用孩子兄弟链表作为树的存储结构,则树的先根遍历应采用二叉树的()。
第7题:
在下列存储形式中,()不是树的存储形式。
第8题:
下列存储形式中,()不是树的存储形式。
第9题:
第10题:
n
n-1
n+1
2n
第11题:
双亲表示法
顺序存储表示
孩子兄弟表示法
孩子链表表示法
第12题:
双亲表示法
孩子表示法
孩子兄弟表示法
姐姐表示法
第13题:
一棵树按照左子女-右兄弟表示法转换成对应的二叉树,则该二叉树中树根结点肯定没有【 】子女。
第14题:
阅读以下说明、图和C代码。
【说明】
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,图10-8(a)所示的树的孩子-兄弟表示如图10-8(b)所示。
函数LevelTraverse()的功能是对给定树进行层序遍历。例如,对图10-1所示的树进行层序遍历时,结点的访问次序为D B A E F P C。
对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如下表所示:
Bool、Status类型定义如下:
typedef enum { FALSE=0,TRUE=1 } Bool;
typedef enum { VERFLOW=-2,UNDERFLOW=-1,ERROR=0,OK=1}Status;
树的二叉链表结点定义如下:
typedef struct Node {
char data;
struct Node *firstchild,*nextbrother;
} Node,*TreeNode;
【函数】
Status LevelTraverse ( TreeNode root )
{ /*层序遍历树,树采用孩子-兄弟表示法,root是树根结点的指针*/
Queue tempQ;
TreeNode ptr,brotherptr;
if (! root)
return ERROR;
InitQueue(&tempQ);
(1);
brotherptr = root -> nextbrother;
while (brotherptr) {
EnQueue(&tempQ,brotherptr);
(2);
}/*end-while*/
while((3)){
(4);
printf("%c\t",ptr->data);
if((5))continue;
(6);
brotherptr = ptr->firstchild->nextbrother;
while (brotherptr) {
EnQueue(&tempQ,brotherptr);
(7);
}/*end-while*/
}/*end-while*/
return OK;
}/*LevelTraverse*/
第15题:
一棵树按照左子女一右兄弟表示法转换成对应的二叉树,则该二叉树中树根结点肯定没有【 】子女。
第16题:
第17题:
利用树的孩子兄弟表示法存储,可以将一棵树转换成()
第18题:
简述二叉链表表示和三叉链表表示的二叉树中结点的结构。
第19题:
在具有n个结点的二叉树的二叉链表表示中,2n个孩子指针域中,只用到()个域。
第20题:
下面属于常用的表示树的链表结构的有()。
第21题:
层次遍历
先序遍历
中序遍历
后序遍历
第22题:
第23题:
双亲表示法
左子女右兄弟表示法
广义表表示法
顺序表示法
第24题:
双亲表示法
左子女右兄弟表示法
广义表表示法
顺序表示法