二叉树的遍历方式
前序遍历:先(根)序遍历的递归算法定义:
若二叉树非空,则依次执行如下操作:
⑴ 访问根结点;
⑵ 遍历左子树;
⑶ 遍历右子树。
递归代码实现
procedure first(i:longint);
begin
write(a[i]);
ifa[i*2]<>0then first(i*2);
ifa[i*2+1]<>0then first(i*2+1);
end;
中序遍历:中(根)序遍历的递归算法定义:
若二叉树非空,则依次执行如下操作:
⑴遍历左子树;
⑵访问根结点;
⑶遍历右子树。
递归代码实现:
procedure mid(i:longint);
begin
if a[i*2]<>0 then mid(i*2);
write(a[i]);
if a[i*2+1]<>0 then mid(i*2+1);
end;
后序遍历:后(根)序遍历得递归算法定义:
若二叉树非空,则依次执行如下操作:
⑴遍历左子树;
⑵遍历右子树;
⑶访问根结点
递归算法实现
procedure last(i:longint);
begin
if a[i*2]<>0 then last(i*2);
if a[i*2+1]<>0 then last(i*2+1);
write(a[i]);
end;