«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Реализация метода удаления

Реализация метода удаления

Опубликовано 31 июля 2024 г.
Просматривать:404

Удаление элемента из дерева AVL аналогично его удалению из BST, за исключением того, что может потребоваться перебалансировка дерева. Как обсуждалось в разделе «Удаление элементов из BST», для удаления элемента из двоичного дерева алгоритм сначала находит узел, содержащий этот элемент. Пусть current указывает на узел, содержащий элемент в двоичном дереве, а parent указывает на родительский узел current узла. Узел текущий может быть левым или правым дочерним элементом родительского узла.
При удалении элемента возникают два случая.

Случай 1: Узел текущий не имеет левого дочернего узла, как показано на рисунке ниже (a). Чтобы удалить узел current, просто соедините узел parent с правым дочерним элементом узла current, как показано на рисунке ниже (b). Высота узлов на пути от родительского узла до корня могла уменьшиться. Чтобы убедиться, что дерево сбалансировано, вызовите

balancePath(parent.element);

Implementing the delete Method

Случай 2: Узел текущий имеет левого дочернего элемента. Пусть rightMost указывает на узел, который содержит самый большой элемент в левом поддереве current узла, а parentOfRightMost указывает на родительский узел rightMost Узел , как показано на рисунке ниже (a). Узел rightMost не может иметь правого дочернего узла, но может иметь левого дочернего элемента. Замените значение элемента в узле current на значение в узле rightMost, соедините узел parentOfRightMost с левым дочерним элементом узла rightMost и удалите узел rightMost, как показано на рисунке ниже (b).

Image description

Возможно, уменьшилась высота узлов на пути от parentOfRightMost до корня. Чтобы убедиться, что дерево сбалансировано, вызовите

balancePath(parentOfRightMost);

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/paulike/implementing-the-delete-method-44k3?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3