Árvores binárias de pesquisa são utilizados para organizar dados sequencial para a recuperação fácil. Cada nó em uma árvore de busca binária tem entre zero e dois filhos. O filho esquerdo de um nó é sempre menor que o nó e o filho direito é sempre maior. Assim, quando estamos à procura de um nó específico, podemos comparar a nossa meta para o nó atual. Se nossa meta é maior do que o nó atual continuamos buscando para baixo o ramo direito, se o nosso objectivo é menor do que o nó atual que procurar para baixo do braço esquerdo. Isso proporciona um grande benefício na procura em comparação com percorrendo uma lista ordenada desses valores. Excluindo nós de uma árvore binária é um pouco mais complicado do que a adição de novos nós ou encontrar os antigos. Dependendo da situação, podemos ter de reorganizar a árvore para garantir que os filhos de cada nó ainda estão devidamente equilibrado.
Excluindo um nó folha
Verifique se o nó não tem filhos.
Encontrar o pai do nó. Definir referência criança do pai para null.
Remova o nó da sua matriz de armazenamento.
Excluindo um nó com Um Filho
Verifique se o nó tem apenas um filho.
Encontrar o pai do nó. Definir referência criança do pai para fazer referência ao filho do nó que você está excluindo.
Remova o nó da sua matriz de armazenamento.
Excluindo um nó com Dois Filhos
Verifique se o nó tem dois filhos.
Localizar a maior nó da árvore à esquerda do nó (o predecessor). Isto pode ser feito através do reforço deixado na árvore de um passo, e depois pisar direito até que não haja mais referências certas.
Ajuste a referência direita do predecessor para referenciar o filho direito do nó que você está excluindo.
Substituir a referência do nó pai ao antecessor.
Remova o nó da sua matriz de armazenamento.
dicas & avisos
- Vários deleções podem causar a sua árvore para tornar-se desequilibrado. Se você achar que seu programa está sendo executado lentamente depois de muitas eliminações, você deve programá-lo para equilibrar a árvore na ocasião.