题目描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=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.