问题 单项选择题

引起心外杂音的原因是()

A、心瓣膜肥厚

B、

C、严重贫血

D、心瓣膜闭锁不全

E、心瓣膜狭窄

答案

参考答案:B

问答题

【说明】
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,图10-8(a)所示的树的孩子-兄弟表示如图10-8(b)所示。


函数LevelTraverse()的功能是对给定树进行层序遍历。例如,对图10-1所示的树进行层序遍历时,结点的访问次序为D B A E F P C。
对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如下表所示:

函数原型说   明
 Void InitQueue(Queue*Q) 初始化队列
 Bool IsEmpty(Queue Q) 判断队列是否为空,若是则返回TRUE,否则返回FALSE
 Void EnQueue(Queue*Q,TreeNode p) 元素入队列
 Void DeQueue(Queue*Q,TreeNode*p) 元素出队列

Bool、Status类型定义如下:
typedef enum { FALSE=0,TRUE=1 } Bool;
typedef enum { OVERFLOW=-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*/

单项选择题