二叉树的层序遍历 使用队列和不使用队列
来源:互联网 发布:怎么管理mac下面的图标 编辑:程序博客网 时间:2024/06/05 21:00
1、使用队列
先将树的根节点入队,
如果队列不空,则进入循环
{
将队首元素出队,并输出它;
如果该队首元素有左孩子,则将其左孩子入队;
如果该队首元素有右孩子,则将其右孩子入队
}
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"); } }
2、不使用队列
C语言代码:
void LevelorderTraversal(BinTree BT){ if(BT) { BinTree b[100]; b[0] = BT; int first = 0; int rear = 1; while(first < rear) { printf(" %c",b[first]->Data); if(b[first]->Left) { b[rear++] = b[first]->Left; } if(b[first]->Right) { b[rear++] = b[first]->Right; } first++; } }}
阅读全文
0 0
- 二叉树的层序遍历 使用队列和不使用队列
- 层序遍历二叉树(队列的使用)
- 中序遍历-----二叉查找树的遍历(迭代版,不使用栈或者队列)
- 队列实现二叉树的层序遍历
- 栈和队列在遍历二叉树中的使用
- 使用队列分层遍历二叉树
- 二叉树的层次遍历---队列的使用
- 树的层序遍历(深度优先 和 队列)
- 数据结构实验之二叉树五:层序遍历(队列)
- 实现二叉树的层序遍历,说说Java中的队列结构(实现一个Java的队列)
- 二叉树的层序遍历(非递归,借用队列实现)
- 使用队列实现二叉树按层次遍历(C++)
- 编程之美。分层遍历二叉树(使用队列)
- 二叉树的前/中/后/层序遍历(前/中/后序递归实现,层序队列实现)
- 操作二叉树使用的队列
- 二叉树遍历之栈和队列
- 20170514_建立二叉树+前序遍历+层序遍历+栈+队列
- 队列和堆栈实现二叉树的遍历
- akka之分发和路由
- leetcode_599. Minimum Index Sum of Two Lists ? 待解决
- hive 不同用户 权限设置 出错处理
- Win10系统下软件UI显示不完整解决方案
- vlc for android 不能全屏,或者画面不能铺满的问题。
- 二叉树的层序遍历 使用队列和不使用队列
- android和JS交互,相互调用方法传值。不使用第三方实现原生加载word、ppt、pdf文档
- Python学习之路6
- hdu 6242 Geometry Problem(随机化+三点求外接圆)
- Python学习之路7
- JVM二:JVM7、8详解
- Python学习之路8
- CentOS7安装Python3
- 如何做电视节目的视频直播(电视台节目直播)