1013 求先序排列

来源:互联网 发布:计算机语言编程 编辑:程序博客网 时间:2024/06/08 20:02
题目描述 Description

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。

输入描述 Input Description

两个字符串,分别是中序和后序(每行一个)

输出描述 Output Description

一个字符串,先序

样例输入 Sample Input

BADC

BDCA

样例输出 Sample Output

ABCD

#include<iostream>#include<cstring>    using namespace std;string s1,s2;void build(int l1,int r1,int l2,int r2){    if(l1>r1)        return ;    cout<<s2[r2];    int k;    for(int i=0;i<s1.length();i++)        if(s1[i]==s2[r2])        {            k=i;            break;        }    if(k>l1)        build(l1,k-1,l2,l2+k-l1-1);    if(k<r1)        build(k+1,r1,l2+k-l1,r2-1);}int main(){    cin>>s1;    cin>>s2;    build(0,s1.length()-1,0,s2.length()-1);}