Java faz Embora não fornecer uma classe árvore binária nas bibliotecas padrão , uma classe de árvore binária básica é simples o suficiente para ser apresentado. A " travessia " de uma estrutura de dados é um algoritmo que visita cada nó uma vez. Este é frequentemente implementada como uma espécie de iterator (muito parecido com uma lista iterator ) ou método que irá chamar um método de retorno de chamada para cada nó. Em Java, a fazer um percurso " pós-ordem ", que vai visitar o nó raiz última , não houve chamadas de retorno ou iteradores são necessárias. A função de passagem simplesmente imprimir cada nó que visita para o console. Instruções
1
Escrever um binário classe básica de busca em árvore. Existem apenas dois métodos que precisam ser apoiados nesta fase : um construtor básico que inicializa o valor do nó , e um método de inserção. O método de inserção irá percorrer uma árvore e criar um novo nó no lugar correto . " " public class BinaryTree { BinaryTree esquerda ; BinaryTree direita; valor int; BinaryTree pública (int v) {value = v; } //Insira um valor para a árvore de inserção public void (int v) {if (v if ( left = = null ) deixou = new BinaryTree ( v); mais left.insert ( v); } else if ( v> value) {if (direita == null ) direita = new BinaryTree ( v); mais right.insert ( v) ,. . }} " "
2
Criar uma instância da árvore binária que será o nó raiz Cada nó , até o nó raiz , deve ter um valor
< br > 3
Escolha um valor para o nó raiz que está em algum lugar no meio dos objetos que você estará armazenando . por exemplo, se você está armazenando uma distribuição uniforme de números de 1 a 100, 50 é uma boa escolha para . . nó raiz árvores binárias deve ser tão equilibrada quanto possível , uma vez que as árvores desequilibradas crescer extremamente alto e não são muito eficazes " " BinaryTree b = new BinaryTree (50); " "
4
Insert uma vez que esta árvore não é auto -equilíbrio , para manter o equilíbrio, nós devem ser inseridos alguns nós na árvore. em uma ordem específica . a ordem neste código exemplo é trabalhada para tornar a árvore mais curto e mais eficiente possível " . " b . inserir ( 20 ) ; b.insert ( 40 ) ; b.insert ( 10 ) ; b.insert ( 5 ) ; b.insert ( 45 ) ; b.insert ( 70 ) ; b.insert ( 60 ) ; b.insert ( 80 ) ; b.insert ( 55 ) ; b.insert ( 85 ) ; " "
5
atravessar a árvore , atravessando a árvore esquerda em primeiro lugar, seguido pela árvore direita , e em seguida, finalmente, a nó raiz . Se a recursão é usada para fazer o percurso pós-ordem , o método é de apenas três linhas. neste caso , a pilha só vai crescer até a altura da árvore. Uma vez que a árvore é equilibrada e pequena , a recursão não transbordará pilha.
6
Adicionar novo método para a classe BinaryTree chamado pós-ordem . Aqui , ele só imprime o valor de cada nó que visita . " " pós-ordem public void () {if (esquerda ! = null ) left.postorder (); if ( direita = null) right.postorder (); ! System.out.println ( valor );} " "
7
Imprima os nós em pós-ordem , chamando a . método b.postorder após suas inserções " " b.postorder (); "