重建二叉树

来源:互联网 发布:站长源码网 编辑:程序博客网 时间:2024/04/28 20:26

重建二叉树

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述
题目很简单,给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!)。
输入
输入有多组数据(少于100组),以文件结尾结束。
每组数据仅一行,包括两个字符串,中间用空格隔开,分别表示二叉树的后序和中序序列(字符串长度小于26,输入数据保证合法)。
输出
每组输出数据单独占一行,输出对应得先序序列。
样例输入
ACBFGED ABCDEFGCDAB CBAD
样例输出
DBACEGFBCAD


已AC代码

#include<stdio.h>#include<string.h>int k;void build(int len,char *s1,char *s2,char *ans){if(len<=0)return ;ans[k++]=s1[len-1];int p=strchr(s2,s1[len-1])-s2;build(p,s1,s2,ans);build(len-p-1,s1+p,s2+p+1,ans);}int main(){char s1[50],s2[50],ans[50];while(~scanf("%s%s",s1,s2)){k=0;int len=strlen(s1);build(len,s1,s2,ans);ans[len]='\0';printf("%s\n",ans);}return 0;}


0 0