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.