数据结构实验之二叉树五:层序遍历
来源:互联网 发布:ubuntu install opera 编辑:程序博客网 时间:2024/06/07 02:53
数据结构实验之二叉树五:层序遍历
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。
Input
输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。
Output
输出二叉树的层次遍历序列。
Example Input
2
abd,,eg,,,cf,,,
xnl,,i,,u,,
Example Output
abcdefg
xnuli
Hint
Author
最重要的还是理解。。。。
#include<stdio.h>#include<stdlib.h>char a[55];int top;struct tree{ int data; struct tree *l, *r;};struct tree *creat(){ struct tree *root; top++; if(a[top] == ',') root = NULL; else { root = (struct tree*) malloc (sizeof(struct tree)); root -> data = a[top]; root -> l = creat(); root -> r = creat(); } return root;};void cengxu(struct tree *root){ int in = 0, out = 0; struct tree *p[100]; //用来存放每一层的数据 p[in] = root; in++; while(in > out) //控制循环跳出 { if(p[out])//防止超时,当时空节点时直接到下一个 { printf("%c", p[out] -> data);//输出当前节点 p[in] = p[out] -> l;//把当前输出数据的左右节点保存 in++; p[in] = p[out] -> r; in++; } out++;//注意一直输出的是p[out] -> data }}int main(){ int t; struct tree *root; scanf("%d", &t); while(t--) { top = -1; scanf("%s", a); root = creat(); cengxu(root); printf("\n"); } return 0;}
0 0
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 题目1158:买房子
- ajaxfileupload源码
- SSM+EasyUI整合,简单实现后台增删改查操作
- C++容器中的函数
- SEMer必会:通过SEO思维为网站获取精准流量
- 数据结构实验之二叉树五:层序遍历
- 浅谈SQL注入风险 - 一个Login拿下Server
- 63.JPA/Hibernate/Spring Data概念【从零开始学Spring Boot】
- 13.(高级)CSS用户体验之:滚动提示
- 关于使用github的方法(Linux环境)
- 微信ios中音视频不能自动播放
- HTML超文本标记语言基本语法结构与“head”部分的知识点
- CentOS 6.5安装MySQL 5.6.10
- python 学习资源