给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。
输入输出格式
输入格式:
2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。
输出格式:
1行,表示一棵二叉树的先序。
输入样例#1:
BADC
BDCA
输出样例#1:
ABCD
#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int len;
inline int find(char ch)
{
for(int i=0;i<len;i++)
{
if(s1[i]==ch) return i;
}
}
void dfs(int l1,int r1,int l2,int r2)
{
int m=find(s2[r2]);
cout<<s2[r2];
if(m>l1) dfs(l1,m-1,l2,r2-r1+m-1);
if(m<r1) dfs(m+1,r1,l2+m-l1,r2-1);
}
int main()
{
cin>>s1;
cin>>s2;
len=s1.size();
dfs(0,len-1,0,len-1);
}