求二叉树的先序遍历
来源:互联网 发布:老七mob淘宝店 编辑:程序博客网 时间:2024/05/18 02:22
题目描述
已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历
输入
输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的中序遍历序列,第二个字符串表示二叉树的后序遍历序列。
输出
输出二叉树的先序遍历序列
示例输入
2
dbgeafc
abdegcf
已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历
输入
输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的中序遍历序列,第二个字符串表示二叉树的后序遍历序列。
输出
输出二叉树的先序遍历序列
示例输入
2
dbgeafc
dgebfca
lnixulinux
abdegcf
xnliu
#include <stdio.h>#include <string.h>#include <stdlib.h>struct node{ char data; struct node *l,*r;};struct node *creat(int len ,char *s1,char *s2){ struct node *root; int i; root=(struct node *)malloc(sizeof(struct node)); if(len==0) return NULL; root->data=s2[len-1]; //后序中最后一个是结点 for(i=0;i!=len;i++)//在中序中找结点 { if(s1[i]==s2[len-1]) break; } printf("%c",root->data); root->l=creat(i,s1,s2); root->r=creat(len-i-1,s1+i+1,s2+i); return root;};int main(){ int t,len; char s1[100],s2[100],n; struct node *root; root=(struct node *)malloc(sizeof(struct node)); scanf("%d",&t); while(t--) { scanf("%s %s",s1,s2); len=strlen(s1); root=creat(len,s1,s2); printf("\n"); } return 0;}
0 0
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- [30天轻松掌握JavaWeb视频]-dom解析xml的增删查改
- [leetcode] Dungeon Game
- 《深入浅出程序设计》
- 一个不错的英语学习博客: http://www.eslbackpack.com/
- Redis学习小结
- 求二叉树的先序遍历
- Android Paint和Color类介绍
- ZOJ 2969 && BNU16488 Easy Task
- jQuery Mobile添加后退按钮
- Linux查看磁盘剩余空间
- 回望2014
- UVA_10405 Longest Common Subsequence(DP)
- android应用开发学习纪实(1)
- YT14——先来练练手(6)