Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data_Structure / лекц07.ppt
Скачиваний:
43
Добавлен:
03.03.2016
Размер:
199.17 Кб
Скачать

While True Do

If Uvkl^.INF>=Pt^.INF Then

{ переход по правой ветви }

If Pt^.Ukzp=Nil Then

Begin

Pt^.Ukzp:=Uvkl;

Exit

End

Else

Pt:=Pt^.Ukzp

Else

21

 

{ переход по левой ветви }

If Pt^.Ukzl=Nil Then

Begin

Pt^.Ukzl:=Uvkl;

Exit

End

Else

Pt:=Pt^.Ukzl

End;

22

Поиск элемента в дереве

Средняя длина поиска Cср зависит от структуры

дерева. Если дерево сбалансировано (то есть все уровни заполнены, кроме, может быть, последнего), то Cср = log2(n+1) – 2 (n- число

внутренних узлов).

Для несбалансированного дерева (данные включаются в случайном порядке) Cср =

1,44*log2(n); для больших n: Cср = 2*log2(n)

23

Процедура поиска

Формальные параметры: Pdr – указатель корня дерева;

Elem- указатель (адрес) найденного элемента; если поиск неуспешен, то Elem должен быть равным Nil;

Kl – ключ поиска.

24

Proceduse Poisk (Var Pdr, Elem:U; Kl:integer);

Var Pt : U;

 

Begin

 

Pt:=Pdr;

 

ELEM:=Nil;

 

While True do

 

Begin

 

If Kl=Pt^.inf Then

{ запись найдена }

Begin

 

Elem:=Pt;

 

Exit

 

End;

25

If Kl>Pt^.inf Then

If Pt^.Ukzp=Nil Then

Еxit

Else

Pt:=Pt^.Ukzp

Else

If Pt^.Ukzl=Nil Then

Exit

Else

Pt:=Pt^.Ukzl

End;

End;

{переход по правой ветви }

{элемент не найден}

{переход по левой ветви }

{элемент не найден}

26

Соседние файлы в папке Data_Structure