试题 算法训练 求先序排列

试题 算法训练 求先序排列

提交此题  

资源限制

时间限制:1.0s   内存限制:256.0MB

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

输入格式

  两行,每行一个字符串,分别表示中序和后序排列

输出格式

  一个字符串,表示所求先序排列

  样例输入
  BADC
  BDCA

样例输出

ABCD

 

 

#include 
#include 
using  namespace std;
string in, post, ans = "";
void pre( int root, int l, int r) {
     if ( l > r) 
	      return;
     int i = r;
     while ( post[root] != in[i]) 
	         i--;
     ans += post[root];
     pre(root - 1 -r + i , l, i - 1);
     pre(root - 1, i + 1, r);
}
int main() {
    cin >> in ;
	getchar();
	cin>> post;
    pre(post.length() - 1, 0, in.length() - 1);
    cout << ans;
    return 0; 
}

 

你可能感兴趣的:(2020蓝桥杯)