【树形结构】洛谷 P1030 求先序排列

来源:互联网 发布:java单例模式调用 编辑:程序博客网 时间:2024/05/05 06:03

题目描述

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

输入输出格式

输入格式:

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

输出格式:

1行,表示一棵二叉树的先序。

输入输出样例

输入样例#1:

BADC
BDCA

输出样例#1:

ABCD

代码

#include<iostream>#include<cstring>using namespace std;string a,b;void calc(int l1,int r1,int l2,int r2){    cout<<b[r2];    int i=a.find(b[r2]);    if(i>l1)calc(l1,i-1,l2,i-l1+l2-1);    if(i<r1)calc(i+1,r1,i-l1+l2,r2-1);}int main(){    cin>>a>>b;    calc(0,a.length()-1,0,b.length()-1);    return 0;}
0 0