经典指数          
原因
2141
浏览数
0
收藏数
 

编写按层次顺序(同一层自左至右)遍历二叉树的算法。

     举报   纠错  
 
切换
1 个答案
Level (liuyu*T) /* liuyu *T,*p,*q[100]; 假设 max 已知*/ {int f,r; f=0; r=0; r=(r+1)%max; q[r]=T; while(f!=r) {f=(f+1%max); /*置空队*/ /*根结点进队*/ /*队列不空*/ p=q[f]; /*出队*/ printf("%d",p->data); /*打印根结点*/ if(p->lchild){r=(r+1)%max; q[r]=p->lchild;} /*若左子树不空,则左子树进队*/ if(p->rchild){r=(r+1)%max; q[r]=p->rchild;} /*若右子树不空,则右子树进队*/ } return(0); } 法二: void LayerOrder(Bitree T)//层序遍历二叉树 { InitQueue(Q); //建立工作队列 EnQueue(Q,T); while(!QueueEmpty(Q)) { DeQueue(Q,p); visit(p); if(p->lchild) EnQueue(Q,p->lchild); if(p->rchild) EnQueue(Q,p->rchild); } }//LayerOrder
 
切换
撰写答案
扫描后移动端查看本题