Advertisement
Guest User

Untitled

a guest
Jul 31st, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.25 KB | None | 0 0
  1. {-----------------------------------------------------------------------------
  2. CREARLISTA - Genera una lista con n?meros aleatorios }
  3. procedure crearLista(var l: Lista);
  4. var
  5.   n: integer;
  6. begin
  7.  l:= nil;
  8.  n := random (20);
  9.  While (n <> 0) do Begin
  10.    agregarAdelante(L, n);
  11.    n := random (20);
  12.  End;
  13. end;
  14.  
  15.  
  16. {-----------------------------------------------------------------------------
  17. IMPRIMIRLISTA - Muestra en pantalla la lista l }
  18. procedure imprimirLista(l: Lista);
  19. begin
  20.  While (l <> nil) do begin
  21.    write(l^.dato, ' - ');
  22.    l:= l^.sig;
  23.  End;
  24. end;
  25.  
  26. {-----------------------------------------------------------------------------
  27. CONTARELEMENTOS - Devuelve la cantidad de elementos de una lista l }
  28.  
  29. function ContarElementos (l: listaNivel): integer;
  30.   var c: integer;
  31. begin
  32.  c:= 0;
  33.  While (l <> nil) do begin
  34.    c:= c+1;
  35.    l:= l^.sig;
  36.  End;
  37.  contarElementos := c;
  38. end;
  39.  
  40.  
  41. {-----------------------------------------------------------------------------
  42. AGREGARATRAS - Agrega un elemento atr?s en l}
  43.  
  44. Procedure AgregarAtras (var l, ult: listaNivel; a:arbol);
  45.  var nue:listaNivel;
  46.  
  47.  begin
  48.  new (nue);
  49.  nue^.info := a;
  50.  nue^.sig := nil;
  51.  if l= nil then l:= nue
  52.            else ult^.sig:= nue;
  53.  ult:= nue;
  54.  end;
  55.  
  56.  
  57. {-----------------------------------------------------------------------------
  58. IMPRIMIRPORNIVEL - Muestra los datos del ?rbol a por niveles }
  59.  
  60. Procedure imprimirpornivel(a: arbol);
  61. var
  62.    l, aux, ult: listaNivel;
  63.    nivel, cant, i: integer;
  64. begin
  65.    l:= nil;
  66.    if(a <> nil)then begin
  67.                  nivel:= 0;
  68.                  agregarAtras (l,ult,a);
  69.                  while (l<> nil) do begin
  70.                     nivel := nivel + 1;
  71.                     cant:= contarElementos(l);
  72.                     write ('Nivel ', nivel, ': ');
  73.                     for i:= 1 to cant do begin
  74.                       write (l^.info^.dato, ' - ');
  75.                       if (l^.info^.HI <> nil) then agregarAtras (l,ult,l^.info^.HI);
  76.                       if (l^.info^.HD <> nil) then agregarAtras (l,ult,l^.info^.HD);
  77.                       aux:= l;
  78.                       l:= l^.sig;
  79.                       dispose (aux);
  80.                      end;
  81.                      writeln;
  82.                  end;
  83.                end;
  84. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement