2001求先序排列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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求先序排列的主要内容,如果未能解决你的问题,请参考以下文章

codevs 1013 求先序排列 2001年NOIP全国联赛普及组 x

蓝桥 - 求先序排列(知中序和后序求先序)

算法训练 求先序排列

求先序排列

(蓝桥杯)试题 算法训练 求先序排列

求先序排列