当前位置: 代码迷 >> 综合 >> P1030 求先序排列
  详细解决方案

P1030 求先序排列

热度:36   发布时间:2023-10-09 10:46:56.0

题目描述

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

输入格式:

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

输出格式:

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

输入样例#1:

BADC
BDCA

输出样例#1:

ABCD

思路

一棵树的后序遍历中的最后一位就是根结点,而中序遍历中根结点的左右两边就是左右子树上的结点。按照这个规律就行了。
vara,b:string;
procedure f(x,y:string);
varp:longint;
beginif length(x)=0 then exit;write(y[length(y)]);p:=pos(y[length(y)],x);f(copy(x,1,p-1),copy(y,1,p-1));f(copy(x,p+1,length(x)-p),copy(y,p,length(y)-p));
end;
beginreadln(a);readln(b);f(a,b);
end.