Предположим что вы удаляете узел из левого поддерева под узлом X

Предположим, что вы удаляете узел из левого поддерева под узлом X. Допус-
тим, что правое поддерево либо точно сбалансировано, либо его правая половина
имеет глубину на единицу больше, чем левая. Тогда левое вращение, показанное
на рис. 7.12, перебалансирует дерево в узле X.

Рис. 7.12. Вращение влево при удалении узла
Нижний уровень поддерева Т2 на рис. 7.12 закрашен серым цветом, таким об-
разом показывается, что поддерево Тв либо точно сбалансировано (Т2 и Т3 имеют
одинаковую глубину), либо его правая половина длиннее (Т3 длиннее Т2). То есть
закрашенный уровень может существовать в поддереве Т2 или отсутствовать.
Если Т2 и Т3 имеют одинаковую глубину, то поддерево Тх с корнем в узле X не
изменяет глубину при удалении узла. Высота Тх была и остается 2 плюс глубина
поддерева Т2. Поскольку глубина не изменяется, дерево выше этого узла сбалан-
сировано.
Если Т3 длиннее Т2, поддерево Тх возрастает на единицу. В этом случае дерево
выше узла X может быть разбалансировано, поэтому необходимо проверить дере-
во, чтобы все предки узла X удовлетворяли свойству AVL.

Удаление узлов из AVL-дерева
Вращение вправо-влево
Другие типы вращения
Удаление узлов в Delphi
Б-деревья

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: