问题 C: 【NOIP01普及组】求先序排列
时间限制: 1.000 Sec 内存限制: 64 MB
提交: 926 解决: 204
[命题人:][下载数据: ?]
题目描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。
输入
一棵二叉树的中序与后序排列
输出
先序排列
样例
输入 复制
BADC BDCA
输出 复制
ABCD
代码:
#include<bits/stdc++.h>
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));
xg(zx.substr(k+1),hx.substr(k,n-k-1));
}
}
int main()
{
string zg,hg;
cin>>zg>>hg;
xg(zg,hg);
return 0;
}