您的位置:首页 > 理论基础 > 数据结构算法

【数据结构】层序遍历二叉树

2017-03-25 16:38 295 查看
层序遍历二叉树的过程和层序生成二叉树的过程类似,都是要借助一个队列来实现。具体过程是:

将根结点入队

取出队首结点,访问该结点

若该结点的左孩子非空,则将左孩子入队

如果右孩子非空,将右孩子入队

重复过程2,3,4 直到队列为空



如图二叉树层序遍历结果为:1 2 3 4 5 6 7 8 9 10

代码实现如下(此处队列的实现参见前面关于循环队列的博文)

void LevelOrderTraveral(BinTree BT)
{
BinTree T;
Queue Q;
Q.front = Q.rear = 0;
T = BT;
if(!T){
return;
}
else{
AddQ(&Q,T);
while(!IsEmptyQ(&Q)){
T = DeleteQ(&Q);
printf("%d ", T->Date);
if(T->Left)
AddQ(&Q,T->Left);
if(T->Right)
AddQ(&Q,T->Right);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: