633(二叉树的遍历,二叉树重建)

来源:互联网 发布:描绘网络的 电影 编辑:程序博客网 时间:2024/06/05 07:21

输入前序遍历和中序遍历,输出后序遍历
输入:DBACEGF ABDCEFG
BCAD CBAD
输出:ACBFGED
CDAB

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