C语言 数据结构之二叉树 数据结构实验之二叉树五:层序遍历
2018-01-31 18:59
260 查看
数据结构实验之二叉树五:层序遍历
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
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
#include <stdio.h> #include <stdlib.h> #include <string.h> char s[60]; int i, j, k; struct node { char data; struct node *l, *r; }; struct node *creat() { i++; struct node *root; if(s[i] == ',') return NULL; else { root = (struct node*) malloc (sizeof(struct node)); root -> data = s[i]; root -> l = creat(); root -> r = creat(); } return root; } void cengci(struct node *root) { if(!root) return; struct node *q[100000], *p; int f, r; q[1] = root, f = r = 1; while(f <= r) { p = q[f]; f++; printf("%c", p -> data); if(p -> l != NULL) { r++; q[r] = p -> l; } if(p -> r != NULL) { r++; q[r] = p -> r; } } } int main() { int t; scanf("%d", &t); while(t--) { i = -1; j = 0; k = 0; scanf("%s", s); struct node *root; root = creat(); cengci(root); printf("\n"); } return 0; }
相关文章推荐
- C语言 数据结构之二叉树 数据结构实验之二叉树二:遍历二叉树
- SDUT-数据结构实验之二叉树二:遍历二叉树
- 3344-->数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 3341 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树二:遍历二叉树
- 3344 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实验之二叉树二:遍历二叉树
- C语言 数据结构之 二叉树 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树五:层序遍历
- SDUT-3344 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树二:遍历二叉树