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);
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).
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);
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