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

Procedure Delet (x:integer; Var p:ref);

Var

q : ref;

Procedure Del (Var r:ref);

Begin

If r^.right<>Nil Then Del(r^.right)

Else

Begin

q^.key:=r^.key;

q:=r; r:=r^.left

End

End; {Del}

21

Begin

If p=Nil Then Writeln (‘Слова нет в дереве’)

Else

If x < p^.key Then Delet (x, p^.left)

Else

If x > p^.key Then Delet (x, p^.right)

Else

Begin { вилучення p^ }

q:=p;

If q^.right = Nil Then p:=q^.left

Else

If q^.left = Nil Then p:=q^.right

Else

Del (q^.left);

End

End; {Delet}

22

AVL (АВЛ)-деревья

(сбалансированные деревья поиска)

Названные в честь их двух изобретателей Г.М. Адельсона- Вельского и Е.М. Ландиса

АВЛ-балансировка по определению требует, чтобы для каждого узла дерева поиска высота его правого поддерева отличалась от высоты левого не более чем на единицу.

23

AVL (АВЛ)-деревья

24

AVL (АВЛ)-деревья

Необходимо, чтобы для любой вершины AVL-дерева разность высот ее левого и

правого поддеревьев была по абсолютной

величине не больше единицы

дополнительно в каждой вершине хранят разность между высотами левого и правого поддеревьев, которая в сбалансированном дереве может принимать только три значения: -1, 0, 1.

25

AVL (АВЛ)-деревья

Type

ref = ^node;

node = Record

key : integer;

...............

left,right : ref;

bal : -1..+1

End;

принимать только три значения: -1, 0, 1.

26

AVL (АВЛ)-деревья

Показатель сбалансирования – разница между высотами левого и правого поддерева

дерева поиска

А 1. hl = hr bal=+1 L R 2. hl < hr bal= 0

3. hl > hr bal= 2

27

AVL (АВЛ)-деревья

Пpоцес включения узла состоит из 3 этапов:

1. Прямувати по шляху пошуку, поки не з’ясується, що ключа немає у деpеві;

2. Включити новий вузол і визначити новий показник збалансованості;

3. Пpойти назад по шляху пошуку і пеpевіpити показник збалансованості кожного вузла.

28

AVL (АВЛ)-деревья

Опеpации сбалансивания деpева складываются из обмена значениями указателей. Пpи этом указатели обмениваются по кругу ( однокpатный “повоpот” двух или тpьох узлов.) Кpоме “поворота” указателей заменяются соответствующие показатели сбалансованности узлов.

LL

RR

RL

LR

29

Принцип роботи алгоритма

30

Соседние файлы в папке Алгоритмы и структуры данных