数据结构 BFS遍历树
来源:互联网 发布:快速选择算法思想 编辑:程序博客网 时间:2024/04/29 21:34
按先序遍历创建一棵树,以层次遍历输出
样例输入
A B # D # # C E # # F # #
样例输出
LevelOrder: A B C D E F
#include <iostream>#include <queue>using namespace std;struct node { //表示一个树上的节点 char ch; node *left, *right;};node* creat() { //以递归的方式构造一棵二叉树 node *root = new node; char c; cin >> c; if(c == '#') root = NULL; else { root->ch = c; root->left = creat(); root->right = creat(); } return root; //返回这棵树的根节点}int main() { node *root = creat(); queue<node*> q; if(root) q.push(root); cout << "LevelOrder:"; while(!q.empty()) {//用BFS的方法,层次遍历输出该二叉树 cout << " " << q.front()->ch; if(q.front()->left) q.push(q.front()->left);//把当前节点左子树的根节点加入队列前,必须先检验当前节点是否具有左子树!!! if(q.front()->right) q.push(q.front()->right);<span style="white-space:pre"></span>//把当前节点右子树的根节点加入队列前,必须先检验当前节点是否具有右子树!!! q.pop();<span style="white-space:pre"></span>//处理完当前节点以后,就可以把它从队列中剔除了! } cout << endl; return 0;}
附注:
<span style="color: rgb(51, 51, 51); font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px; text-indent: 28px; ">c.front() 返回容器c的第一个元素的引用。如果c为空,则该操作为空。</span>
<span style="color: rgb(51, 51, 51); font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px; text-indent: 28px; "></span>
0 0
- 数据结构 BFS遍历树
- 数据结构 BFS层次遍历二叉树【C语言版本】
- 数据结构(一) 广度优先遍历 BFS
- 数据结构-图的广度优先遍历(BFS)
- 数据结构——BFS邻接表遍历
- 数据结构:树的BFS,树的层次遍历! 按先序遍历创建一棵树,然后以层次遍历输出。
- 数据结构—树和二叉树-2.二叉树的层次遍历(BFS)
- 【数据结构与算法】十六 二叉树遍历 BFS 广度优先 递归算法
- 【数据结构与算法】十九 二叉树遍历 BFS 广度优先 迭代算法
- 【数据结构】图的遍历之DFS和BFS
- 数据结构基础 图的遍历(二) 之 BFS
- 数据结构(17)--图的遍历DFS和BFS
- 数据结构—连通图的遍历—DFS和BFS
- 数据结构之图的遍历(BFS+DFS)
- BFS遍历
- 二叉树遍历 - 数据结构
- 数据结构 二叉树遍历
- 数据结构 - 二叉树遍历
- Eclipse debug ‘Source not found’
- JSP 定制标签
- android TextView实现实现跑马灯效果,并监听滚动完成动作。
- POJ 1094:Sorting It All Out:拓扑排序的较为繁琐的逻辑变形
- Key Task
- 数据结构 BFS遍历树
- 独立成分分析(Independent Component Analysis)
- (最大流) poj3436 ACM Computer Factory
- 怎么查别人qq登陆记录
- java的junit测试
- A计划
- 2.1.1 多数据库
- 【iOS开发】 同步请求、异步请求、GET请求、POST请求
- Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义