Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASD_Lecture04

.pdf
Скачиваний:
19
Добавлен:
12.02.2016
Размер:
1.23 Mб
Скачать

Висота вузлів після вставляння 7

 

Дерево A (AVL)

Дерево B (не AVL)

 

 

 

 

2

 

 

 

3

 

 

баланс

 

 

 

 

 

6

 

1-(-1) = 2

1

 

6

1

 

1

 

2

 

 

 

 

 

 

 

4

0

 

9

0

4

0

1

9

-1

0

 

0

1

5

 

7

1

 

5

8

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

Висота вузла

= h

 

 

 

 

 

 

 

Баланс

 

= hleft-hright

 

 

 

Лекція 4

11

Вставляння і повороти в AVL деревах

Операції вставки можуть змінити баланс на 2 або -2 для деяких вузлів

тільки вузли на шляху від точки введення до кореневого вузла мають можливість змінити висоту

Отже, після вставки, треба повернутися вгору назад дo кореневого вузла, оновлюючи висоти

Якщо новий баланс (різниця hleft-hright) дорівнює 2 або –2, вирівняти дерево за допомогою повороту довкола вузла

Лекція 4

12

Одинарний поворот в AVL дереві

 

 

2

 

 

2

 

 

 

6

 

 

6

 

1

 

2

1

 

 

1

4

 

9

4

 

 

8

0

0

1

0

0

0

0

 

1

5

8

1

5

7

9

 

 

0

 

 

 

 

 

 

7

 

 

 

 

Лекція 4

13

Вставляння у AVL дерева

Нехай вузол, який потребує збалансування є .

Існує 4 варіанти:

Зовнішні випадки (вимагають одного повороту) :

1.Вставляння у ліве піддерево лівої дитини .

2.Вставляння у праве піддерево правої дитини . Вінутрішні випадки (вимагають подвійного повороту) :

3.Вставляння у праве піддерево лівої дитини .

4.Вставляння у ліве піддерево правої дитини .

Збалансування здійснюється за допомогою чотирьох алгоритмів

Лекція 4

14

Вставляння в AVL дерево: Зовнішній випадок

Розглянемо

j

 

AVL піддерево

 

k h

h

h

Z

 

 

X Y

Лекція 4

15

Вставляння в AVL дерево: Зовнішній випадок

j

Вставляння X

зруйнує AVL властивості у вузлі

k

h

h+1 h Z

Y

X

Лекція 4

16

Вставляння в AVL дерево: Зовнішній випадок

j

Виконати “правий поворот”

k h

h+1 h Z

Y

X

Лекція 4

17

Простий правий поворот

j Здійснити правий поворот

k h

h+1 h Z

Y

X

Лекція 4

18

Завершення зовнішнього випадку

“Правий поворот” виконано!

(“Лівий поворот” є дзеркально k симетричним)

j

h+1

h h

X Y Z

Властивості AVL-дерева відновлено!

Лекція 4

19

Вставляння в AVL-дерево : Внутрішній випадок

Розглянемо піддерева

AVL-дерева

k h

h

h

Z

X Y

Лекція 4

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]