层次遍历也是二叉树中的一种遍历方式,说明是从上至下从左至右的遍历方式进行对二叉树的遍历,下面来介绍一下二叉树的层次遍历算法。
二叉树如下:
原理如下:
- 代码实现起来也就按照原理来书写就变得十分简单啦:
//环形队列算法遍历
void levelOrder(BTNode *bnode){
BTNode *b;
SqQueue *qu;
initQueue(qu);
enQueue(qu,bnode); //A 进队
b = bnode;
printf("\n");
while(!QueueEmpty(qu)){
deQueue(qu,b); //A
printf("%3c",b->data); //A
if(b->lchild != NULL){
enQueue(qu,b->lchild);
}
if(b->rchild != NULL){
enQueue(qu,b->rchild);
}
}
}
- 结果如下: