求先序排列
题目描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤26)。
输入格式
2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。
输出格式
1行,表示一棵二叉树的先序。
输入样例 1
BADC
BDCA
输出样例 1
ABCD
参考题解 #1
FBI树 #2
这题也是一道模板
题
#include<iostream>
#include<cstring>
using namespace std;
void xg(string zx,string hx)
{
int n=zx.size(),k;
char c;
if(n>0)
{
c=hx[n-1];
cout<<c;
k=zx.find(c);
xg(zx.substr(0,k),hx.substr(0,k));//left
xg(zx.substr(k+1),hx.substr(k,n-k-1));//right
}
}
int main()
{
string zg,hg;
cin>>zg>>hg;
xg(zg,hg);
return 0;
}