层次遍历利用队列,很容易实现,先根节点入队,出队,每次出队检查左右子节点是否为空,非空则入队,如此往复直至队空,代码如下
//层次遍历输出二叉树 void levelOrder(BiTree biT){ printf("层次遍历结果:\n"); initQueue(&sqQueue); BiTree p; enQueue(&sqQueue,biT); while(!isEmpty(sqQueue)){ deQueue(&sqQueue,&p); printf("%d ",p->data); if(p->lchild!=NULL) enQueue(&sqQueue,p->lchild); if(p->rchild!=NULL) enQueue(&sqQueue,p->rchild); } }