思路:
- 需要利用队列实现。
- 建立队列,设置队头队尾,初始化为0
- 判断二叉树是否为空,若为空则返回
- 将根节点进队,执行如下循环,直到队列为空结束循环
1)队头结点出队
2)打印队头结点
3)依次判断该节点的左右节点是否为空,若非空,则入队
代码:
void LevelorderTraversal( BinTree BT )
{
BinTree queue[1000], temp;//建立队列
int head=0,rear=0;//设置队首队尾
if(BT==NULL)//树为空则返回
return;
queue[rear++] = BT;
while(head-rear)
{
temp = queue[head++];
printf(" %c",temp->Data);
if(temp->Left) queue[rear++] = temp->Left;
if(temp->Right) queue[rear++] = temp->Right;
}
}