ASD_Lecture04
.pdfВставляння в AVL-дерево : Внутрішній випадок
Вставляння у Y |
j |
Чи “правий поворот” |
зруйнує |
відновить баланс? |
|
AVL властивості |
k |
|
у вузлі j |
h |
|
|
||
|
|
|
h |
h+1 |
Z |
X
Y
Лекція 4 |
21 |
Вставляння в AVL-дерево : Внутрішній випадок
k |
|
“Правий поворот” |
j |
Не відновлює |
|
h |
баланс… тепер k є |
|
розбалансованим |
||
X |
h+1 |
h |
Z
Y
Лекція 4 |
22 |
Вставляння в AVL-дерево : Внутрішній випадок
Розглянемо структуру |
j |
піддерева Y… |
k h
h |
h+1 Z |
X
Y
Лекція 4 |
23 |
Вставляння в AVL-дерево : Внутрішній випадок
Y = вузол i та |
j |
піддеревам V і W |
k h
h |
i h+1 Z |
X |
h or h-1 |
V W
Лекція 4 |
24 |
Вставляння в AVL-дерево : Внутрішній випадок
Виконаємо лівосторонній “подвійний поворот” . . .
k
i Z X
V W
Лекція 4 |
25 |
Подвійне обертання: друге обертання
Лівий поворот завершено
i k Z
W X V
Лекція 4 |
26 |
Подвійне обертання: друге обертання
j
i
Тепер потрібно зробити
правий поворот
k Z W
X V
Лекція 4 |
27 |
Подвійне обертання: друге обертання
|
|
|
Правий поворот завершено |
|
|
i |
Збалансованість |
|
|
відновлена |
|
|
|
|
|
k |
|
|
j |
h |
h або h-1 |
h |
|
X |
V |
W |
Z |
Лекція 4 |
28 |
Структура вузла
balance (1,0,-1) key
leftright
Лекція 4 |
29 |
Переваги і недоліки AVL дерев
Аргументи на користь AVL дерев:
1.Пошук має асимптотичну складність O(log N) оскільки
AVL дерева є завжди збалансовані.
2.Асимптотична складність вставляння і видаляння
O(log N)
3.Збалансування висоти додає не більше ніж константу
до швидкості вставляння
Аргументи проти використання AVL дерев:
1.Важко програмувати & відлагоджувати; більше місця для зберігання балансу.
2.Асимптотично швидші але збалансування вимагає часу.
3.Більшість операцій пошуку здійснюється у СКБД на
диску і використовують інші структури (н.п. B-дерева).
Лекція 4 |
30 |