二叉树的层序遍历-C语言描述
二叉树遍历的核心问题:二维数组的线性化
队列实现
遍历从根结点开始,首先将根节点入队,然后开始执行循环:
- 结点出队
- 访问该结点
- 其左右儿子入队
void LevelOrderTraversal(BinTree BT)
{
Queue Q;
BinTree T;
if(!BT)return;//空树直接返回
Q=CreatQueue(Maxsize);//初始化队列
AddQ(Q,BT);
while(!IsEmptyQ ( Q ) ){
T=DeleteQ(Q);
printf("%d",T->Date);
if(T->Left) AddQ(Q,T->Left);
if(T->Right) AddQ(Q,T-Right);
}
}

浙公网安备 33010602011771号