árvores binárias podem formar os blocos de construção de uma pesquisa eficiente e algoritmos de classificação e por isso têm ampla aplicação em ciência da computação . Como Pascal tem suporte para registros e tipos de ponteiro , você pode elegantemente implementar árvores binárias nele. Use seu programa de Pascal como a base de uma fila de prioridade montão binário ou modificá-lo para suportar qualquer tipo de dados comparáveis . Instruções
1
Abra um novo arquivo de Pascal em seu editor de texto ou IDE
2
Adicione seguinte linha ao arquivo: . Bintree programa;
3
Digite o seguinte trecho de código em seu editor para definir os tipos básicos para a árvore binária : TypeBinTree = ^ ; Nó Nó = recordi : integer; L , R: BinTree ; fim;
4
Copie o seguinte no editor para a construção de uma árvore vazia: função MakeTree : BinTree ; beginMakeTree : = nilend ;
5
Coloque o seguinte código-fonte em seu arquivo para testar a árvore para o vazio : função IsEmptyTree ( B: BinTree ): Boolean ; beginIsEmptyTree : = (B = nil ); fim;
6
Inclua as seguintes linhas no seu script para a construção de um nó filho com o valor inteiro dado : função MakeNode (I: inteiro): BinTree ; Varres : BinTree ; beginNew (Res ); Res ^ I: . = I; Res ^ L: = MakeTree ; Res ^ R : . = MakeTree ; MakeNode : . = Res ; fim;
7
Adicione estas linhas para libertar uma árvore a partir do nó raiz dado : Procedimento DeallocateTree (var B: BinTree ); beginif não IsEmptyTree (B ), então beginDeallocateTree (B ^ L . ); DeallocateTree (B . ^ R); Dispose ( B); endend ;
8
Coloque a próxima seção de código em seu arquivo para inserir o valor dado em sua localização ordenada na árvore binária : . procedimento InsertInTree ( I : integer; var B: BinTree ); beginif IsEmptyTree (B) thenB : . . . = MakeNode (I) else if I < B ^ Eu thenInsertInTree (I, B ^ L) elseInsertInTree (I, B ^ final R);
9
Adicione o seguinte código-fonte para procurar uma árvore para um dado valor : função FindInTree (S : integer; B: BinTree ): Boolean ; beginif IsEmptyTree (B) thenFindInTree : = Falseelse se S < , B ^ Eu thenFindInTree : = FindInTree (S , B ^ L ). else if B ^ I < S thenFindInTree : = FindInTree (S , B ^ R. ) else beginFindInTree : . . = Trueendend ;
10
cole o seguinte procedimento em seu programa de Pascal para ver o conteúdo da árvore na ordem de classificação : Procedimento printTree ( B: BinTree ); beginif não IsEmptyTree (B ), então beginPrintTree (B ^ L . ); writeln (B ^ . I); printTree (B ^ R) endend ;
11
Adicione estas últimas linhas para o seu arquivo para terminar o programa Pascal : . BeginEnd
.