listarbb.pas
{ ppc386 -va -vh *.pas }
{ COMIENZO DE DESCRIPCION
Listado de \'arboles binarios en diferentes ordenes.
keywords: arbol binario
FIN DE DESCRIPCION }
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
{ $ Id: listarbb.pas 2002/04/05 14:10 mstorti Exp jdelia $ }
program listarbb;
uses u_arbbii;
const
nmax = 100 ;
type
bosque = bosque_arbbii ;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure ORD_PREV (n: curs_nodo; B: bosque);
begin
if (n <> lambda) then begin
write (B.ETIQUETA (n),' ');
ORD_PREV (B.HIJO_IZQ (n), B);
ORD_PREV (B.HIJO_DER (n), B);
end ; {if}
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure ORD_POST (n: curs_nodo; B: bosque);
begin
if (n <> lambda) then begin
ORD_POST (B.HIJO_IZQ (n), B);
ORD_POST (B.HIJO_DER (n), B);
write (B.ETIQUETA (n),' ');
end ; {if}
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure ORD_SIM (n: curs_nodo; B: bosque);
begin
if (n <> lambda) then begin
ORD_SIM (B.HIJO_IZQ (n), B);
write (B.ETIQUETA (n),' ');
ORD_SIM (B.HIJO_DER (n), B);
end ; {if}
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
var
bos : array [1..nmax] of curs_nodo;
B : bosque;
begin
B.INICIALIZA_NODOS;
bos [2] := B.CREA2 (2, lambda, lambda);
bos [4] := B.CREA2 (4, lambda, lambda);
bos [5] := B.CREA2 (5, lambda, lambda);
bos [7] := B.CREA2 (7, lambda, lambda);
bos [9] := B.CREA2 (9, lambda, lambda);
bos [8] := B.CREA2 (8, bos [7], bos [9]);
bos [6] := B.CREA2 (6, bos [5], bos [8]);
bos [3] := B.CREA2 (3, bos [4], bos [6]);
bos [1] := B.CREA2 (1, bos [2], bos [3]);
writeln ;
writeln ('Listado en orden previo: ');
ORD_PREV (bos [1], B);
writeln ;
writeln('Listado en orden posterior: ');
ORD_POST (bos [1], B);
writeln ;
writeln ('Listado en orden simetrico: ');
ORD_SIM (bos [1], B);
writeln ;
end.
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
Generated by GNU enscript 1.6.1.