"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Implémentation de la méthode delete

Implémentation de la méthode delete

Publié le 2024-07-31
Parcourir:265

Supprimer un élément d'une arborescence AVL équivaut à le supprimer d'un BST, sauf que l'arborescence devra peut-être être rééquilibrée. Comme indiqué dans la section Suppression d'éléments d'un BST, pour supprimer un élément d'un arbre binaire, l'algorithme localise d'abord le nœud qui contient l'élément. Laissez current pointer vers le nœud qui contient l'élément dans l'arborescence binaire et parent pointer vers le parent du nœud current. Le nœud actuel peut être un enfant gauche ou un enfant droit du nœud parent.
Deux cas se présentent lors de la suppression d'un élément.

Cas 1 : le nœud actuel n'a pas d'enfant gauche, comme le montre la figure ci-dessous (a). Pour supprimer le nœud current, connectez simplement le nœud parent avec l'enfant droit du nœud current, comme indiqué dans la figure ci-dessous (b). La hauteur des nœuds le long du chemin allant du nœud parent jusqu'à la racine peut avoir diminué. Pour vous assurer que l'arborescence est équilibrée, invoquez

balancePath(parent.element);

Implementing the delete Method

Cas 2 : le nœud actuel a un enfant gauche. Laissez rightMost pointer vers le nœud qui contient le plus grand élément dans le sous-arbre gauche du nœud current et parentOfRightMost pointer vers le nœud parent de rightMost Nœud , comme le montre la figure ci-dessous (a). Le nœud rightMost ne peut pas avoir d'enfant droit mais il peut avoir un enfant gauche. Remplacez la valeur de l'élément dans le nœud current par celle du nœud rightMost, connectez le nœud parentOfRightMost avec l'enfant gauche du rightMost et supprimez le nœud rightMost, comme indiqué dans la figure ci-dessous (b).

Image description

La hauteur des nœuds le long du chemin allant de parentOfRightMost jusqu'à la racine peut avoir diminué. Pour vous assurer que l'arborescence est équilibrée, invoquez

balancePath(parentOfRightMost);

Déclaration de sortie Cet article est reproduit sur : https://dev.to/paulike/implementing-the-delete-method-44k3?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3