【分析解答题】
[说明]
二叉树的二叉链表存储结构描述如下:
typEDEF struCtBitnoDE
DAtAtypE DAtA;
struCtBitnoDE *lChilD, * rChilD; /*左右孩子指针*/
BitnoDE,*BitrEE;
对二叉树进行层次遍历时,可设置一个队列结构,遍历从二叉树的根结点开始,首先将根结点指针入队列,然后从队首取出一个元素,执行下面两个操作:
(1) 访问该元素所指结点;
(2) 若该元素所指结点的左、右孩子结点非空,则将该元素所指结点的左孩子指针和右孩子指针顺序入队。
此过程不断进行,当队列为空时,二叉树的层次遍历结束。
下面的函数实现了这一遍历算法,其中visit(DAtAtypE A)函数实现了对结点数据域的访问,数组quEuE[mAxnoDE]用以实现队列的功能,变量Front和rEAr分别表示当前队首元素和队尾元素在数组中的位置。
[函数]
voiD lEvElorDErBitrEE Bt)/*层次遍历二叉树Bt*/
BitrEE quEuE[mAxnoDE];
int Front,rEAr;
iF(Bt= =null)rEturn;
Front=-1;
rEAr=0;
quEuE[rEAr]= (1) ;
whilE(Front (2) )
(3) ;
visit(quEuE[Front]->DAtA);/*访问队首结点的数据域*/
iF(quEuE[Front]—>lChilD!:null)
rEAr++;
quEuE[rEAr]= (4) ;
iF(quEuE[Front]->rChilD! =null)
rEAr++;
quEuE[rEAr]= (5) ;
查看答案解析
参考答案:
正在加载...
答案解析
正在加载...
根据网考网移动考试中心的统计,该试题:
0%的考友选择了A选项
0%的考友选择了B选项
0%的考友选择了C选项
0%的考友选择了D选项