Изменения

Перейти к: навигация, поиск

Обсуждение участницы:Анна

1 байт добавлено, 15:22, 29 мая 2015
Нет описания правки
Рассмотри пример (рис. 1). Цветом выделены поддеревья, которые после разделения должны отойти в дерево <tex>T_{1}</tex>. <tex>x = 76</tex>.
[[Файл:AVL.jpg‎|350px525px||Рис. 1. Разделение АВЛ-дерева на два.]]
Корень дерева <tex>\leqslant x</tex>, поэтому он со всем выделенным поддеревом должен отойти в дерево <tex>T_{1}</tex>. По описанному выше алгоритму отделяем это поддерево с корнем и делаем из них сбалансированное АВЛ-дерево <tex>T'</tex> (рис. 2). Так как это первая ситуация, в которой корень рассматриваемого поддерева был <tex>\leqslant x</tex>, <tex>T'</tex> становится <tex>T_{1}</tex>. Далее по сохраненной ссылке спускаемся в правое поддерево. Его корень <tex>> x</tex>. Следовательно, строим из него и его правого поддерева <tex>T_{2}</tex> и спускаемся в левое поддерево. Снова корень <tex>\leqslant x</tex>. Строим новое <tex>T'</tex> и объединяем его с уже существующим <tex>T_{1}</tex> (рис. 3).
[[Файл:АВВЛ2.jpg|350px525px||Рис. 2. Создание T'.]]
[[Файл:AVL3.jpg|900px1350px||Рис. 3. Объединение T' и T1.]]
Далее действуем по алгоритму и в итоге получаем (рис. 4):
[[Файл:End.jpg|350px525px||Рис. 4. АВЛ-деревья после разделения.]]
577
правок

Навигация