noip初赛 大牛请进:二叉树的遍历!!

来源:百度知道 编辑:UC知道 时间:2024/05/13 10:47:50
二叉树的先序、中序、后序究竟是怎么走的(最好附一个二叉树的图讲解一下) 如果给出一个二叉树的两种遍历,怎么求另外一种遍历?
周六就要初赛了,望高手为我讲解一下

A
/ \
B C
/ \ / \
D E F G

前序 A BDE CFG
后序 DEB FGC A
中序 DBE A FCG

前、中、后是对根来说
总根,还有每个子树的根,你我帮你空出来了,自己多研究研究。

这是我写的一个根据中序和后序求前序的程序,给你参考。
var st2,st3:string;

procedure Love(s1,s2:string);
var l,r,i,k1,k2:integer;
mid:string;
begin
l:=length(s1);
r:=pos(copy(s2,l,1),s1);
write(copy(s1,r,1));
if r>1 then
Love(copy(s1,1,r-1),copy(s2,1,r-1));
if r<l then
Love(copy(s1,r+1,l-r+1),copy(s2,r,l-r));
end;

begin
readln(st2);
readln(st3);
Love(st2,st3);
end.

1
/ \
2 3
/ \ / \
4 5 6 7
先序:1245367
中序:4251637
后序:4526731
先序:中左右。
中序:左中右。
后序:左右中。
我18日也要参加noip
我们彼此彼此
不过这方面我很清楚
请你采纳我的答案
谢谢

遍历概念

所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题