数据结构实验之二叉树五:层序遍历
来源:互联网 发布:樱井知香全部影片 编辑:程序博客网 时间:2024/04/29 08:09
数据结构实验之二叉树五:层序遍历
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。
输入
输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。
输出
输出二叉树的层次遍历序列。
示例输入
2abd,,eg,,,cf,,,xnl,,i,,u,,
示例输出
abcdefgxnuli
提示
来源
#include<bits/stdc++.h>using namespace std;typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;char a[1010]; int b;int CreateBiTree(BiTree &T)//创建二叉树{ char ch; ch=a[b++]; if(ch==',') { T=NULL; } else { T=(BiTNode* )malloc(sizeof(BiTNode )); T->data=ch; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } return 0;}void Traverse(BiTree T)//层次遍历函数{ queue <BiTree> q; //结构体队列 BiTree p=NULL; if(T) { q.push(T); } while(!q.empty()) { p=q.front(); q.pop(); cout<<p->data; if(p->lchild) { q.push(p->lchild); } if(p->rchild) { q.push(p->rchild); } }}int main(){ BiTree T; int n; cin>>n; while(n--) { b=0; cin>>a; CreateBiTree(T); Traverse(T); cout<<endl; }}
层次遍历思路
(1)判断根结点是否为空,非空入队列
(2)如果队列非空,队首元素出队列,输出结点值,若结点有左孩子,左孩子入队列;若结点有右孩子,右孩子也入队列。
(3)重复步骤(2)直到队列为空
0 0
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- iOS开发_部分密文显示身份证号及姓名
- POJ 1458 Common Subsequence [DP.LIS]
- js代码总报变量未定义的错
- Java 类加载顺序和{}的写法
- Java中抽象类和接口的区别
- 数据结构实验之二叉树五:层序遍历
- android app使用v7 appcompat library设置全局样式
- Cpp环境【NOI1994】【Vijos3266】最佳旅游路线
- CocoaPods 更新慢的处理
- Oracle - SQL学习笔记 2
- 浅谈无线网络组建和通信的实现方法
- 【数据结构】单链表—逆置单链表
- linux中一些特殊的权限(setuid/setgid/sticky)
- Highcharts常用图形报表展示