Java não tem uma classe de árvore binária , mas é simples de apresentar uma versão da estrutura de dados para fazer uma travessia para agradar . A " travessia " de uma árvore binária é um procedimento fórmulas para visitar cada nó na árvore binária de uma vez. Uma travessia para agradar vai fazer isso em ordem de classificação. Traversal geralmente é implementado como uma espécie de iteração (como uma lista iterator ) ou por um método que irá chamar um método de retorno de chamada para cada nó. Você pode , no entanto, fazer isso sem usar callbacks ou iteradores , em vez de imprimir para o console cada nó visitado. Instruções
1
Criar um binário classe básica de busca em árvore. Neste ponto , você só vai precisar de um método 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 fazer um novo nó no lugar certo . " " 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 a instância (nó) da árvore binária que será o nó raiz Como qualquer outro nó , o nó raiz precisa ter um valor geralmente é melhor . . . para escolher um valor próximo à média dos objetos que você está armazenando , como árvores binárias deve ser tão equilibrada quanto possível " " BinaryTree b = new BinaryTree (50); " "
3 < . . p > inserir nós na árvore de modo específico para manter o equilíbrio , como esta árvore binária não é auto - equilíbrio este exemplo cria a árvore menor possível, a fim de manter a eficiência " " b.insert ( 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 ), " "
4
Mover-se através da árvore através de um percurso em inordem a árvore esquerda é percorrido em primeiro lugar, seguido pelo nó raiz e , em seguida, a árvore certa. atravessada. Usando recursão , o código é apenas três linhas. Entretanto, como recursão toma espaço de pilha , ele deve ser usado com cuidado. Com um pequeno e equilibrado árvore binária , a recursão não vai estourar a pilha .
5 < . p> Adicione um novo método para a classe Java BinaryTree chamado para agradar " " public void para agradar () {if (left = null !) left.inorder (); System.out.println ( valor ); ! if ( direita = null ) right.inorder ();} " "
6
Chame o método para agradar depois de suas inserções para imprimir os nós em ordem de classificação. " " b.inorder (); "