数据结构实验之二叉树五:层序遍历
来源:互联网 发布:淘宝店铺和旺铺的区别 编辑:程序博客网 时间:2024/06/05 20:41
数据结构实验之二叉树五:层序遍历
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。
Input
输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。
Output
输出二叉树的层次遍历序列。
Example Input
2abd,,eg,,,cf,,,xnl,,i,,u,,
Example Output
abcdefgxnuli
代码如下
#include<stdio.h>#include<stdlib.h>#include<string.h>struct node{ int data; struct node *left; struct node *right;};struct node *creat(int n,char *str,char *str1){ struct node *tree; if(n==0) return NULL; char *p; tree=(struct node *)malloc(sizeof(struct node)); tree->data=str[0]; for(p=str1; p!='\0'; p++) { if(*p==str[0]) break; } int t=p-str1; tree->left=creat(t,str+1,str1); tree->right=creat(n-t-1,str+t+1,p+1); return tree;}void bianli(struct node *tree){ int ans=0; int temp=1; struct node *p[60]; p[0]=tree; while(ans<temp) { if(p[ans]) { printf("%c",p[ans]->data); p[temp++]=p[ans]->left; p[temp++]=p[ans]->right; } ans++; }}int main(){ int t; struct node *tree; char str[100]; char str1[100]; scanf("%d",&t); while(t--) { scanf("%s%s",str,str1); int n=strlen(str); tree=creat(n,str,str1); bianli(tree); printf("\n"); } return 0;}
1 0
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 【智利支付】智利外贸收款方式Servipag
- CS0414号警告是什么
- UrlEncoder与URLDecoder编码解码
- 第一篇博客
- 借用别人的UML图描述UML各线条和箭头关系
- 数据结构实验之二叉树五:层序遍历
- php使用反射API
- JDK 1.7 java.io 源码学习之Closeable、Flushable、Appendable接口
- BZOJ 4559 [JLoi2016]成绩比较
- Leetcode-516-Longest Palindromic Subsequence
- 开始学习Android啦!
- for循环中取索引,取到之后return直接跳出循环
- 欢迎使用CSDN-markdown编辑器
- 虚拟地址与物理地址之间的关系