P1030(洛谷题面

题目

题目描述:

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 )。

输入格式:

共两行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。

输出格式:

共一行一个字符串,表示一棵二叉树的先序。

数据范围与说明:

【题目来源】

NOIP 2001 普及组第三题

输入输出样例 #1

输入:

1
2
BADC
BDCA

输出:

1
ABCD

题意

简述:

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 )。

代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<bits/stdc++.h>
using namespace std;
string a,b;
void func(string x,string y){
if(x.size()>0){
char ch=y[y.size()-1];
cout<<ch;
int k=x.find(ch);
func(x.substr(0,k),y.substr(0,k));
func(x.substr(k+1),y.substr(k,x.size()-k-1));
}

}
int main(){
cin>>a;
cin>>b;
func(a,b);
return 0;
}