数据结构实验之二叉树五:层序遍历
2015-11-08 11:44
309 查看
数据结构实验之二叉树五:层序遍历
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。输入
输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。输出
输出二叉树的层次遍历序列。示例输入
2 abd,,eg,,,cf,,, xnl,,i,,u,,
示例输出
abcdefg xnuli
提示
来源
xam示例程序
#include<stdio.h> #include<string.h> #include<stdlib.h> char a[100]; int l1; struct node { int data; struct node *lchild,*rchild; }; struct node *creat() { struct node *root; char c; c=a[l1++]; if(c==',') return NULL; else { root=(struct node *)malloc(sizeof(struct node)); root->data=c; root->lchild=creat(); root->rchild=creat(); } return root; } void cengci(struct node *root) { int out=0,in=0; struct node *q[100]; q[in++]=root; while(in>out) { if(q[out]) { printf("%c",q[out]->data); q[in++]=q[out]->lchild; q[in++]=q[out]->rchild; } out++; } } int main() { int i,j,n,m,k,t; struct node *root; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%s",a); l1=0; root=(struct node *)malloc(sizeof(struct node)); root=creat(); cengci(root); printf("\n"); } } return 0; }
相关文章推荐
- 快速排序
- 数据结构实验之二叉树三:统计叶子数
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实践——操作用邻接表存储的图
- 冒泡排序
- 不相交集合求并的路径压缩
- leetcode 141.Linked List Cycle
- 数据结构实验之二叉树六:哈夫曼编码
- 数据结构学习之双向链表结构
- 不相交集的求并算法(按集合大小求并+按高度求并)
- 不相交集ADT(联机算法 + 脱机算法)
- 树的预备知识
- [刷题丶数据结构]1.栈和队列
- 数据结构基础5.1:树的遍历(递归与非递归实现)
- UVa 210 Concurrency Simulator(双端队列)
- Give Me the Number(将字符串的值变为数)
- 今日学习札记——数据结构基础(11.7)
- 使用后缀表达式写的数据结构实验,实现计算器
- C语言/单片机基础训练之数据结构
- Dijkstra算法