Uma árvore de busca binária é uma estrutura de dados onde os registros de dados, chamados de "nós ", tem ponteiros para outros nós , chamados de " filhos". Isto dá os nós , quando representado graficamente para fora , uma forma semelhante a uma árvore genealógica . Os nós receber o seu lugar na árvore de base sobre se a sua avaliação quanto maior ou menor do que os outros nós . Crianças deixadas são sempre menos do que seus pais , as crianças sempre certas more.Binary árvores de busca são importantes em ciência da computação , porque eles podem ser tanto ordenados e procurou , em média, em O (n log n) . Coisas que você precisa
Compiler
existente árvore de busca binária
Show Mais instruções
1
Criar uma função de armazenamento que recebe o nó raiz . Sempre que você lidar com as árvores em ciência da computação , o algoritmo mais eficaz será quase sempre recursiva e armazenar a árvore para um arquivo não será excepção . Aqui está um esqueleto amostra da função de armazenamento recursiva (em Java). Loja public void (Node n ) throws IOException {...}
2
Escrever dados sobre nó raiz para o arquivo . Isto irá usar " travessia pré- ordem" (Root , Esquerda Criança, Direito da Criança ) para passar por todos os nós da árvore , porque este método de travessia irá torná-lo mais fácil de reconstruir a árvore da ordem dos nós no arquivo . A função recursiva agora fica assim: public void store (Node n ) throws IOException { write ( savefile , n) ;} loja deve chamar -se com o Child Left : loja public void (Node n ) throws IOException { write ( savefile , n ); loja ( n.left );} loja deve chamar-se com o Menino direita: loja public void (Node n ) throws IOException { write ( savefile , n) ; loja ( n.left ); loja ( n.right ); }
3
Confira que a função passa a lista de verificação recursiva. Para evitar erros de estouro de pilha , verifique sempre que uma função recursiva satisfaz as seguintes condições : A função tem um estado de saída? Sim, desde que a árvore não é de profundidade infinita , eventualmente, ele vai chegar a um nó que não tem nem um filho esquerdo ou direito e vai exit.Does a cada iteração da função de aproximar-se do estado de saída? Sim, presumindo-se que a árvore não é circular e nenhum nó tem um de seus próprios ancestrais como uma função child.The passa o checklist.
4
Reconstruir a partir do arquivo . Quando chega a hora de carregar a árvore de volta a partir do arquivo , você simplesmente inserir cada nó na árvore como ele é carregado a partir do arquivo usando o algoritmo de inserção padrão. Isso deve começar na raiz e trabalhar o seu caminho para baixo, usando pré-encomenda travessia , colocando o novo nó no primeiro espaço vazio em que vai se encaixar . Isso deve reconstruir a árvore exatamente como ele foi originalmente composta em O (n log n) , em média.