"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Implementando o método delete

Implementando o método delete

Publicado em 31/07/2024
Navegar:129

Excluir um elemento de uma árvore AVL é o mesmo que excluí-lo de um BST, exceto que a árvore pode precisar ser rebalanceada. Conforme discutido na Seção Excluindo Elementos de um BST, para excluir um elemento de uma árvore binária, o algoritmo primeiro localiza o nó que contém o elemento. Deixe atual apontar para o nó que contém o elemento na árvore binária e pai apontar para o pai do nó atual. O nó atual pode ser um filho esquerdo ou um filho direito do nó pai.
Dois casos surgem ao excluir um elemento.

Caso 1: O nó atual não possui filho esquerdo, conforme mostrado na Figura abaixo (a). Para excluir o nó atual, basta conectar o nó pai com o filho direito do nó atual, conforme mostrado na Figura abaixo (b). A altura dos nós ao longo do caminho do nó pai até a raiz pode ter diminuído. Para garantir que a árvore esteja equilibrada, invoque

balancePath(parent.element);

Implementing the delete Method

Caso 2: O nó atual tem um filho esquerdo. Deixe rightMost apontar para o nó que contém o maior elemento na subárvore esquerda do nó atual e parentOfRightMost apontar para o nó pai do rightMost nó , conforme mostrado na Figura abaixo (a). O nó rightMost não pode ter um filho direito, mas pode ter um filho esquerdo. Substitua o valor do elemento no nó atual por aquele no nó rightMost, conecte o nó parentOfRightMost com o filho esquerdo do rightMost nó e exclua o nó rightMost, conforme mostrado na Figura abaixo (b).

Image description

A altura dos nós ao longo do caminho de parentOfRightMost até a raiz pode ter diminuído. Para garantir que a árvore esteja equilibrada, invoque

balancePath(parentOfRightMost);

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/paulike/implementing-the-delete-method-44k3?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3