【队列实现】
遍历从根节点开始,首先将根节点入队,然后开始执行循环:节点出队,访问该节点,使其左右儿子入队
基本过程:
从队列中抽取一个元素;访问该元素所指节点;若该元素所指节点的左右孩子节点非空,则将其左右孩子的指针顺序入队。
void LevelOrderTraversal(BinTree BT)
{
Queue Q;
BinTree T;
if(!BT) return; //空树直接返回
Q=CreatQueue(MAXSIZE); //创建并初始化队列
Add(Q,BT);
whiel(!TsEmptyQ(Q)){
T=DeleteQ(Q);
printf("%d\n",T->Data);
if(T->Left) AddQ(Q,T->Left);
if(T->Right) AddQ(Q,T->Right);
}
}