Advertisement
Raizen

Estrutura de Dados P3

May 28th, 2014
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.29 KB | None | 0 0
  1. Program Pzim ;
  2. type titem = integer;
  3. type arvb = ^bloco;
  4.     bloco = record
  5.             esq:arvb;
  6.             item:titem;
  7.             dir:arvb;
  8.           end;
  9. var
  10. arvore : arvb;          
  11.  
  12. function vazia(A: arvb) : boolean;
  13.   begin
  14.     vazia := (A = nil);
  15.   end;
  16.  
  17. function nulos(A : arvb) : integer;
  18.   begin
  19.     if vazia(A) then nulos := 1
  20.     else nulos := nulos(A^.esq) + nulos(A^.dir);
  21.   end;
  22.  
  23. function folha(x:titem) : arvb;
  24. var a: arvb;
  25.   begin
  26.     new(A);
  27.     A^.esq := nil;
  28.     A^.item := x;
  29.     A^.dir := nil;
  30.     folha := A;
  31.   end;
  32.  
  33. function no(e:arvb; x:titem; d:arvb) : arvb;
  34. var A: arvb;
  35. begin
  36.     new(A);
  37.     A^.esq := e;
  38.     A^.item := x;
  39.     A^.dir := d;
  40.     no := A;
  41. end;
  42.  
  43. function raiz(A:arvb):titem;
  44. begin
  45.   if vazia(A) then writeln('árvore binária vazia!')
  46.   else raiz := A^.item;
  47. end;
  48.  
  49. procedure insere(x:titem; var A:arvb);
  50. begin
  51.   if vazia(A) then A := folha(x)
  52.   else if x< raiz(A) then insere(x, a^.esq)
  53.   else insere(x, A^.dir);  
  54. end;
  55.  
  56. procedure cria (var a: arvb);
  57. begin
  58.   a := nil;
  59. end;
  60.  
  61. Begin
  62.    cria(arvore);
  63.    arvore := folha(5);
  64.    insere(4, arvore);
  65.    insere(2, arvore);
  66.    insere(7, arvore);
  67.    insere(6, arvore);
  68.    insere(10, arvore);
  69.    writeln(arvore^.esq^.item);
  70.    writeln(arvore^.dir^.esq^.item);
  71. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement