知道二叉树的中序和后序,如何编程得出这棵树的先序

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:33:45
描述 Description
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。

输入格式 Input Format
第一行为二叉树的中序序列
第二行为二叉树的后序序列

输出格式 Output Format
一行,为二叉树的先序序列

样例输入 Sample Input
BADC
BDCA

样例输出 Sample Output
ABCD

用Pascal语言哦,可以的话带上一点简单的备注哦!谢谢各位啦!

临时写的 没有测试数据 有错误请多包涵

program xianxu;
var
zx,hx:string;

procedure make(zx,hx:string);
var gen:char;
p:longint;
begin
gen:=hx[length(hx)]; //找到根
p:=pos(gen,zx);
if (p>=1)and(p<=length(hx)) then
begin
write(gen);
make(copy(zx,1,p-1),copy(hx,1,p-1));//递归左子树
make(copy(zx,p+1,length(zx)-p),copy(hx,p,length(zx)-p));//递归右子树
end;
end;

BEGIN
readln(zx);//读中序
readln(hx);//读后序
make(zx,hx);
END.