您的位置:首页 > 其它

题目:[NOIP2001]求先序排列

2011-10-18 21:59 330 查看
题目:[NOIP2001]求先序排列
问题编号:611

题目描述

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

输入格式

两行,分别为给定的一棵二叉树的中序与后序排列.

输出格式

一行,为所求的此二叉树的前序排列.

样例输入

BADC

BDCA

样例输出

ABCD

==========================

===============

var
st1,st2:string;
procedure init;
begin
assign(input,'rq611.in');
assign(output,'rq611.out');
reset(input); rewrite(output);
end;

procedure terminate;
begin
close(input); close(output);
halt;
end;

procedure chuli(st1,st2:string);
var
i:longint;
t:longint;
begin
t:=length(st2);
write(st2[t]);
for i:=1 to length(st1) do
if st1[i]=st2[t] then break;
if (i>1)and(i<t) then
begin
chuli(copy(st1,1,i-1),copy(st2,1,i-1));
chuli(copy(st1,i+1,t-i),copy(st2,i,t-i));
end
else
if (i=1)and(i<t)then
begin
chuli(copy(st1,i+1,t-i),copy(st2,i,t-i));
end;
if (i>1)and(i=t) then
begin
chuli(copy(st1,1,i-1),copy(st2,1,i-1));
end;
end;

procedure main;
begin
readln(st1);
readln(st2);
chuli(st1,st2);
end;

begin
init;
main;
terminate;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: