Program Testa_Rotinas_de_Arvore_Binaria_Ordenada; {ABO} Uses crt; {$I ABO.PAS } {$I ABO1.PAS} Var Raiz,Nodo:Ptr_ArvBin_Nodo; Dado:TArvBin_Dado; Begin Writeln; Writeln('>> Rotinas de Teste de Arvores Binarias Ordenadas <<'); Writeln; Writeln('Inserindo nodos nesta ordem: 10, 7, 20, 15, 23'); Writeln; ArvBin_Inicializa(Raiz); ArvBin_Insere_Ordenado(Raiz,10); ArvBin_Insere_Ordenado(Raiz,7); ArvBin_Insere_Ordenado(Raiz,20); ArvBin_Insere_Ordenado(Raiz,15); ArvBin_Insere_Ordenado(Raiz,23); Writeln('Arvore em modo Infixado:'); ArvBin_Exibe_Infixado(Raiz); writeln; Writeln('Arvore em modo Prefixado:'); ArvBin_Exibe_Prefixado(Raiz); writeln; Writeln('Arvore em modo Posfixado:'); ArvBin_Exibe_Posfixado(Raiz); writeln; write('>> Pressione ENTER para ver a estrutura da arvore...'); readln; clrscr; Writeln('Arvore em modo estrutura:'); ArvBin_Exibe_Arvore(Raiz,40,3,80); {Exibe centrado c/80 cols, na 3a.linha} writeln; write('>> Pressione ENTER para continuar...'); readln; Writeln; Writeln('Removendo nodos nesta ordem: 20, 7, 15, 23 e 10'); Nodo:=ArvBin_Pesquisa_Dado(Raiz,20); ArvBin_Remove_Nodo(Nodo,Dado); Writeln('Removido: ',Dado); Nodo:=ArvBin_Pesquisa_Dado(Raiz,7); ArvBin_Remove_Nodo(Nodo,Dado); Writeln('Removido: ',Dado); Nodo:=ArvBin_Pesquisa_Dado(Raiz,15); ArvBin_Remove_Nodo(Nodo,Dado); Writeln('Removido: ',Dado); Nodo:=ArvBin_Pesquisa_Dado(Raiz,23); ArvBin_Remove_Nodo(Nodo,Dado); Writeln('Removido: ',Dado); Nodo:=ArvBin_Pesquisa_Dado(Raiz,10); if (Nodo=Raiz) and (Raiz^.ArvEsq=NIL) and (Raiz^.ArvDir=NIL) then Begin Raiz:=Nil; Write('Ultimo nodo...'); End; ArvBin_Remove_Nodo(Nodo,Dado); Writeln('Removido: ',Dado); Write('>> Pressione ENTER para terminar...'); readln; End.