描述
给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。
输入
输入可能有多组,以EOF结束。
每组输入包含两个字符串,分别为树的前序遍历和中序遍历。每个字符串中只包含大写字母且互不重复。
输出
对于每组输入,用一行来输出它后序遍历结果。
样例输入
DBACEGF ABCDEFG
BCAD CBAD
样例输出
ACBFGED
CDAB
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector>
using namespace std;
string a,b;
void houxu(string d,string e){
if(e.empty())
return ;
// if(e.size()==1){
// cout<<e;
// }
char q=d[0];
int l=e.find(q);
string leftd=d.substr(1,l);
string rightd=d.substr(l+1);
string lefte=e.substr(0,l);
string righte=e.substr(l+1);
houxu(leftd,lefte);
houxu(rightd,righte);
cout<<d[0];
}
int main(){
while(cin>>a>>b){
houxu(a,b);
cout<<endl;
}
return 0;
}
输出: