【数据结构】层序遍历二叉树
2017-03-25 16:38
295 查看
层序遍历二叉树的过程和层序生成二叉树的过程类似,都是要借助一个队列来实现。具体过程是:
将根结点入队
取出队首结点,访问该结点
若该结点的左孩子非空,则将左孩子入队
如果右孩子非空,将右孩子入队
重复过程2,3,4 直到队列为空
如图二叉树层序遍历结果为:1 2 3 4 5 6 7 8 9 10
代码实现如下(此处队列的实现参见前面关于循环队列的博文)
将根结点入队
取出队首结点,访问该结点
若该结点的左孩子非空,则将左孩子入队
如果右孩子非空,将右孩子入队
重复过程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); } } }
相关文章推荐
- 数据结构《15》----二叉树的层序遍历
- 数据结构《15》----二叉树的层序遍历
- 【数据结构】二叉树前中后序遍历、层序遍历(递归实现)
- 数据结构之二叉树1(前序中序后序层序遍历,重建二叉树)
- 算法与数据结构面试题(20)-层序遍历二叉树
- 数据结构:二叉树,二叉树的前中后序、层序遍历(递归法,非递归法),得到一个数叶子节点的个数……
- 数据结构面试题/实现一颗二叉树的层序遍历
- 数据结构 二叉树层序遍历的队列实现
- 数据结构学习笔记-二叉树的层序遍历
- 数据结构:实验七——二叉树的层序遍历
- 数据结构的C实现_二叉树的非递归遍历和层序遍历
- 数据结构 二叉树的层序遍历
- 数据结构-二叉树的各种遍历(先中后层序!!)
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- [置顶] 数据结构——二叉树 前序、中序、后序、递归遍历和非递归遍历
- 【数据结构】二叉树的层次遍历
- 二叉树的四种遍历方式 (前序,中序,后序,层序遍历 python实现)
- <二叉树 前中后 层序 非递归遍历 c语言实现>
- 二叉树的前序,中序,后序和层序遍历java实现
- 数据结构:题目(4)遍历二叉树的四种方法: 依次是:层次、前序、中序、后序