【数据结构&算法】二叉树的层序遍历
来源:互联网 发布:无线访客网络设置 编辑:程序博客网 时间:2024/05/22 10:55
转载请注明出处: http://blog.csdn.net/ns_code/article/details/13169703
前面有篇博客详细分析了二叉树三种遍历(前序、中序、后序)方式的递归与非递归实现,参见:http://blog.csdn.net/ns_code/article/details/12977901,但把二叉树的层序遍历算法给漏掉了,实际上也不能说漏掉了,毕竟层序遍历的实现方法与这三种遍历的实现方法有所不同,因此单独拿出来分析比较合适。
二叉树的层序遍历的实现还是比较简单的,由于其层级的关系,很明显要用到队列来辅助实现,主要是从左向右,自上而下,依次将二叉树的各节点入队,这样便可以保证输出的顺序是层序排列的。下面是算法的实现思想:
先将树的根节点入队,
如果队列不空,则进入循环
{
将队首元素出队,并输出它;
如果该队首元素有左孩子,则将其左孩子入队;
如果该队首元素有右孩子,则将其右孩子入队
}
C语言代码如下:
void LevelOrderTraverse(BiTree T,Status(*Visit)(TElemType)) { //Visit是对节点操作的应用函数, //在这里,对每个数据元素调用函数Visit,也即是遍历了该节点 SqQueue q; QElemType p; if(T) { InitQueue(&q); EnQueue(&q,T); while(!QueueEmpty(q)) { DeQueue(&q,&p); Visit(p->data); if(p->lchild!=NULL) EnQueue(&q,p->lchild); if(p->rchild!=NULL) EnQueue(&q,p->rchild); } printf("/n"); } }
0 0
- 【数据结构与算法】二叉树的层序遍历
- 【数据结构与算法】二叉树的层序遍历
- 【数据结构与算法】二叉树的层序遍历
- 【数据结构&算法】二叉树的层序遍历
- 【数据结构与算法】二叉树的层序遍历
- 【数据结构与算法】二叉树的遍历(递归遍历、非递归遍历、层序遍历)
- 数据结构 二叉树的层序遍历
- 二叉树的层序遍历算法
- 数据结构《15》----二叉树的层序遍历
- 数据结构学习笔记-二叉树的层序遍历
- 【数据结构】层序遍历二叉树
- 算法题目-二叉树的层序遍历
- 【算法】二叉树遍历(层序)
- 【数据结构与算法】二叉树的遍历
- 数据结构的C实现_二叉树的非递归遍历和层序遍历
- 算法与数据结构面试题(20)-层序遍历二叉树
- 数据结构——二叉树的建立和遍历(递归建树&层序遍历建树)
- 数据结构之二叉树的前序遍历、中序遍历、后序遍历、层序遍历
- 数据结构课程总结,,
- restful接口实现跨域访问,以及get请求对象参数对象封装,post请求
- UUID笔记
- matlab---RBF
- JAVA的值传递
- 【数据结构&算法】二叉树的层序遍历
- 浅析android消息收发机制
- 同源策略 & 内容安全策略
- 【AJAX】XMLHttpRequest
- 推荐系统 用户画像 标签聚类 个性化搜索
- 数据库之视图操作
- 1619-7 张良 十二月十八号总结 [连续第七十九天]
- 《React-Native系列》图解RN布局之FlexBox
- dev多控件导出到Excel多个sheet页