ordnivel.pas
{ ppc386 -va -vh *.pas }
{ COMIENZO DE DESCRIPCION
Imprime el orden de nivel de un arbol ordenado.
Utiliza una cola auxiliar para construir el orden
de nivel. keywords: arbol orientado, cola
FIN DE DESCRIPCION }
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
{ $ Id: ordnivel.pas 2002/04/05 15:40 mstorti Exp jdelia $}
program ordnivel;
uses u_arbori, u_colaai;
type
bosque = bosque_arbori ;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure ORDEN_DE_NIVEL (n: curs_nodo; A: bosque);
var
n1 : curs_nodo;
C : ColaAi;
begin
if (n = Lambda) then exit ;
C.ANULA;
C.PONE (n);
writeln (A.ETIQUETA (n));
while (NOT C.VACIA) do begin
n1 := C.FRENTE;
C.QUITA;
n1 := A.HIJO_MAS_IZQ (n1);
while (n1 <> Lambda) do begin
writeln (A.ETIQUETA (n1));
C.PONE (n1);
n1 := A.HERMANO_DER (n1);
end; {while}
end; {while}
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
var
bos : array [1..100] of curs_nodo;
arbol : curs_nodo;
prof_list, nodos : integer;
A : bosque ;
begin
A.INICIALIZA_NODOS;
bos[1] := A.CREA0 (33);
bos[2] := A.CREA0 (8);
bos[3] := A.CREA0 (7);
bos[4] := A.CREA0 (62);
bos[5] := A.CREA0 (130);
bos[6] := A.CREA0 (12);
bos[7] := A.CREA3 ( 41, bos [2], bos [3], bos[4]);
bos[8] := A.CREA2 ( 63, bos [1], bos [7]);
bos[9] := A.CREA0 (48);
bos[10] := A.CREA2 (125, bos [5], bos [6]);
arbol := A.CREA3 (142, bos [8], bos [9], bos [10]);
ORDEN_DE_NIVEL (arbol, A);
writeln;
ORDEN_DE_NIVEL (bos [7], A);
end.
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
Generated by GNU enscript 1.6.1.