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

Исключение узла из дерева

может нарушить сбалансированность дерева

1

а) Удаляемый элемент-лист (3, 8, 13, 18).

Например:

Ppt^.ukzl:=nil;

Ppt («отец»

удаляемого)

10

5

15

{ или ppt^.ukzp:=nil} Dispose(pt)

Pt-

 

 

 

удаляемый 3

8

13

18

2

б) Удаляемый элемент имеет одного "сына".

Например:

10

5

15

Удаляемый

3

8

18

3

в) Удаляемый элемент имеет двух "сыновей".

67

13

270

6

45

125

340

34

58

76

251

380

4

Удаляемый элемент ЗАМЕНЯЕТСЯ наиболее близким по значению листом (чтобы упорядоченность дерева не нарушилась).

Это будет самый правый по левой ветви или самый левый по правой ветви лист.

5

Обход

Обход- выполнение некоторой операции над каждым элементом дерева

6

Существует три метода обхода дерева:

1.Сверху вниз: R, A, B (порядок обхода вершин).

2.Слева направо: A, R, B.

3.Снизу вверх: A, B, R.

R

A B

7

Процедура обхода двоичного дерева сверху вниз

Procedure D1 (T: U);

Begin

If T<>Nil Then

Begin

Writeln(T^.INF);

D1 (T^.UKZL);

D1 (T^.UKZP)

End

End;

8

Процедура обхода двоичного дерева слева направо

Procedure D2 (T: U);

Begin

If T<>Nil Then

Begin

D2 (T^.UKZL);

Writeln(T^.INF);

D2 (T^.UKZP)

 

End

9

End;

 

Процедура обхода двоичного дерева снизу вверх

Procedure D3 (T: U);

 

Begin

 

If T<>Nil Then

 

Begin

 

D3 (T^.UKZL);

 

D3 (T^.UKZP);

 

Writeln(T^.INF)

 

End

 

End;

10

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