首页 > 代码库 > 2001求先序排列
2001求先序排列
题目描述 Description
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。
输入描述 Input Description
两个字符串,分别是中序和后序(每行一个)
输出描述 Output Description
一个字符串,先序
样例输入 Sample Input
BADC
BDCA
样例输出 Sample Output
ABCD
数据范围及提示 Data Size & Hint
题解:
树形搜索。
用后序遍历确定根节点,中序遍历确定左右子树。
var s1,s2,s:ansistring;
procedure dfs(l1,r1,l2,r2:longint);
var i:longint;
begin
if l1=r1 then
begin
write(s1[l1]);
exit;
end;
write(s2[r2]);
i:=pos(s2[r2],s1);
if i-1>=l1 then dfs(l1,i-1,l2,l2+i-l1-1);
if r1>=i+1 then dfs(i+1,r1,l2+i-l1,r2-1);
end;
begin
readln(s1);
readln(s2);
dfs(1,length(s1),1,length(s2));
end.
2001求先序排列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。