Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program Pzim ;
- type titem = integer;
- type arvb = ^bloco;
- bloco = record
- esq:arvb;
- item:titem;
- dir:arvb;
- end;
- var
- arvore : arvb;
- function vazia(A: arvb) : boolean;
- begin
- vazia := (A = nil);
- end;
- function nulos(A : arvb) : integer;
- begin
- if vazia(A) then nulos := 1
- else nulos := nulos(A^.esq) + nulos(A^.dir);
- end;
- function folha(x:titem) : arvb;
- var a: arvb;
- begin
- new(A);
- A^.esq := nil;
- A^.item := x;
- A^.dir := nil;
- folha := A;
- end;
- function no(e:arvb; x:titem; d:arvb) : arvb;
- var A: arvb;
- begin
- new(A);
- A^.esq := e;
- A^.item := x;
- A^.dir := d;
- no := A;
- end;
- function raiz(A:arvb):titem;
- begin
- if vazia(A) then writeln('árvore binária vazia!')
- else raiz := A^.item;
- end;
- procedure insere(x:titem; var A:arvb);
- begin
- if vazia(A) then A := folha(x)
- else if x< raiz(A) then insere(x, a^.esq)
- else insere(x, A^.dir);
- end;
- procedure cria (var a: arvb);
- begin
- a := nil;
- end;
- Begin
- cria(arvore);
- arvore := folha(5);
- insere(4, arvore);
- insere(2, arvore);
- insere(7, arvore);
- insere(6, arvore);
- insere(10, arvore);
- writeln(arvore^.esq^.item);
- writeln(arvore^.dir^.esq^.item);
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement