American_Heritage_(heritage)[USACO_3.4.2]

本文介绍如何利用递归算法结合树的基本操作,通过已知的前序遍历和中序遍历来求解树的后序遍历。通过分析,确定根节点并利用中序遍历划分左右子树,最终实现后序遍历的求解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法:递归

分析:树的基本操作,已知前序遍历和中序遍历求后序遍历。

      先确定根,再在中序遍历中确定左子树和右子树。

{

ID:1011mashuo

PROG:heritage

LANG:PASCAL

}



program heritage;



var

 zx,qx:ansistring;

 

procedure work(zx,qx:ansistring);

var

 t,len:longint;

begin

 if qx<>'' then

  begin

   len:=length(qx);

   t:=pos(qx[1],zx);

   work(copy(zx,1,t-1),copy(qx,2,t-1));

   work(copy(zx,t+1,len-t),copy(qx,t+1,len-t));

   write(qx[1]);

  end;

end;



begin

 assign(input,'heritage.in'); reset(input);

 assign(output,'heritage.out'); rewrite(output);



 readln(zx);

 readln(qx);

 work(zx,qx);

 writeln;



 close(input); close(output);

end.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值