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

Реализация ротации

Опубликовано 1 августа 2024 г.
Просматривать:359

Несбалансированное дерево становится сбалансированным путем выполнения соответствующей операции вращения. В разделе «Ребалансировка деревьев» показано, как выполнять вращения узла. В приведенном ниже коде представлен алгоритм вращения LL, как показано на рисунке ниже.

1 BalanceLL(TreeNode A, TreeNodeparentOfA) {
2 Пусть B — левый потомок A.
3
4, если (A — корень)
5 Пусть B будет новым корнем
6 еще {
7, если (A — левый дочерний элемент родительского объекта ParentOfA)
8. Пусть B — левый дочерний элемент родительского элемента ParentOfA;
еще 9
10 Пусть B — правый дочерний элемент родительского элемента A;
11 }
12
13 Сделайте T2 левым поддеревом A, присвоив B.right A.left;
14 Сделайте A правым дочерним элементом B, присвоив A B.right;
15. Обновите высоту узла A и узла B;
16 } // Конец метода

Implementing Rotations

Обратите внимание, что высоту узлов A и B можно изменить, но высоты других узлов в дереве не изменяются. Вы можете реализовать ротацию RR, LR и RL аналогичным образом.

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

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

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

Copyright© 2022 湘ICP备2022001581号-3