Estrutura de dados 1
de
Estrutura
de
Dados
EP2
Nomes: Felipe Hayashi de Mendonça. Nº de Matrícula: 0726532 Gustavo da Silva Ramos Nº de Matrícula: 0726605 Kiyoshi Takamura Nº de Matrícula: 0726729 Leandro Farias dos Santos Abreu Nº de Matrícula: 0726737 Roberto Cesar de Souza Nº de Matrícula: 0726915
program EP_2; uses crt; type tp_arv = ^no; no = record esq :tp_arv; item:integer; dir :tp_arv; end;
procedure Insere(var t: tp_arv; x: integer); begin if t = nil then begin new(t); t^.item:= x; t^.esq:= nil; t^.dir:= nil; end else if x < t^.item then Insere(t^.esq, x) else Insere(t^.dir, x); end;
procedure ImpFolha(t: tp_arv); begin If t = nil then writeln('A arvore esta vazia') else if (t^.dir = nil) and (t^.esq = nil) then writeln(t^.item) else if (t^.dir nil) and (t^.esq = nil) then ImpFolha(t^.dir) else if (t^.dir = nil) and (t^.esq nil) then ImpFolha(t^.esq) else if (t^.dir nil) and (t^.esq nil) then begin ImpFolha(t^.dir); ImpFolha(t^.esq); end; end; function Contar(t: tp_arv):integer; begin if t = nil then Contar:=0 else if (t^.dir nil) and (t^.esq = nil) then Contar:= 1 + Contar(t^.dir) else if (t^.dir = nil) and (t^.esq nil) then Contar:= 1 + Contar(t^.esq) else Contar:= Contar(t^.dir) + Contar(t^.esq); end; procedure Imp1(t:tp_arv); begin if t = nil then writeln('A arvore esta vazia') else if (t^.dir = nil) and (t^.esq = nil) then
else if (t^.dir nil) and (t^.esq = nil) then begin writeln(t^.item); Imp1(t^.dir); end else if (t^.dir = nil) and (t^.esq nil) then begin writeln(t^.item); Imp1(t^.esq); end else if (t^.dir nil) and (t^.esq nil) then begin Imp1(t^.dir); Imp1(t^.esq); end;
end;