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

ASD_Lecture04

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

Вставляння в 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

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