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

Структуры и алгоритмы / Типы и структуры данных

.pdf
Скачиваний:
153
Добавлен:
23.02.2015
Размер:
451.95 Кб
Скачать

A

B

 

E

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

F

D

G

Рис. 28. Представление бинарного дерева в виде многосвязного списка

Важнейшие операции над бинарным деревом – это обход его узлов, добавление и исключение некоторого поддерева.

Операции обхода (или прохождения) дерева используются для последовательного систематического просмотра узлов дерева.

Эта операция может быть использована для контроля информации, хранящейся в древовидной структуре, а также как состоявшая часть для выполнения остальных операций над деревом.

Для обхода бинарного дерева могут быть использованы следующие способы: сверху, слева направо, снизу.

Обычно обход бинарного дерева начинается с корня и в корне заканчивается (рис.29). Выбранная стратегия обхода бинарного дерева влияет на то, когда будет выполнена та обработка, ради которой делается обход: если сверху, то в начале, если снизу, то в конце.

43

A

B F

C D

E

Рис.29. Обход узлов дерева

Операции исключения и добавления в произвольном дереве

Исключаемым или добавляемым объектом применительно к произвольному дереву является некоторое дерево. В операции исключения необходимо указать узел исходного дерева, играющий роль корня исключаемого поддерева, и номер или индекс исключаемого поддерева, так как один узел в зависимости от степени исхода может играть роль корня для нескольких разных деревьев.

Пусть Х – некоторый узел произвольного дерева, а Y1, Y2, ..., Yn – его узлы-сыновья. Тогда исключение i-го поддерева узла Х означает уменьшение степени исхода узла Х на единицу и удаление из исходного дерева ветви (X, Yi) и поддерева, корнем которого служит узел Yi. В результате удаления поддерева узел Х может стать листом.

В операции включения должны быть заданы: включаемое поддерево; тот узел исходного дерева, к которому «подвешивается» в качестве ветви включаемое поддерево; индекс, назначаемый

44

поддереву и определяющий его местоположение среди других поддеревьев, связанных с узлом подключения.

В результате операции включения поддерева Y в узел Х исходного дерева степень исхода узла Х возрастает на единицу, то есть у узла Х появляется еще один узел-сын. Ему (сыну) присваивается индекс в диапазоне от 1 до n+1 (n – начальная степень исхода узла Х). При этом необходимо заново перенумеровать всех сыновей узла Х.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.Кнут Д. Искусство программирования для ЭВМ. Т. 1. Основные алгоритмы. Москва: Издательство «Мир», 1976. 735 с.

2.Кнут Д. Искусство программирования для ЭВМ. Т. 3. Сортировка и поиск. М.: Издательство «Мир», 1978. 844 с.

3.Кук Д., Бейз Г. Компьютерная математика. М.: Наука, 1990. 384 с.

4.Кузнецов О.П., Адельсон-Вельский Г. М. Дискретная математика для инженера. М.: Энергоатомиздат, 1988. 480 с.

5.Яблонский С. В. Введение в дискретную математику. М.: Наука, 1986. 384 с.

6.Костин А. Е., Шаньгин В. Ф. Организация и обработка структур данных в вычислительных системах. М.: Высшая школа, 1987. 248 с.

7.Королев М. А., Клешко Г. Н., Мишенин А. И. Информационные системы и структуры данных. М.: Статистика, 1977. 183 с.

8.Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979. 535 с.

45

ОГЛАВЛЕНИЕ

 

ВВЕДЕНИЕ ...............................................................................................

3

1. ТИПЫ ДАННЫХ ...................................................................................

6

2. СТРУКТУРЫ ДАННЫХ.........................................................................

7

2.1. КЛАССИФИКАЦИЯ СТРУКТУР ДАННЫХ ...................................................

9

2.2. ПРОСТЕЙШИЕ СТАТИЧЕСКИЕ СТРУКТУРЫ ............................................

10

2.2.1. Вектор ....................................................................................

10

2.2.2. Массив .....................................................................................

11

2.2.3. Запись......................................................................................

12

2.2.4. Таблица ...................................................................................

15

Алгоритм исключения элемента из таблицы .............................

16

Алгоритм включения элемента в таблицу .................................

17

2.3. ПОЛУСТАТИЧЕСКИЕ СТРУКТУРЫ .........................................................

18

2.3.1. Стек.........................................................................................

19

2.3.2. Очередь ...................................................................................

22

Алгоритм включения элемента в кольцевую очередь ................

24

Алгоритм исключения элемента из кольцевой очереди .............

25

2.3.3. Деки..........................................................................................

25

2.4. ЛИНЕЙНЫЕ ДИНАМИЧЕСКИЕ СТРУКТУРЫ.............................................

26

Операция включения элемента в список ......................................

30

Операция удаления элемента из списка.......................................

31

2.5. НЕЛИНЕЙНЫЕ СВЯЗНЫЕ СТРУКТУРЫ ..................................................

32

Метод счетчиков............................................................................

37

Метод сборки мусора .....................................................................

38

2.6. СЕТИ................................................................................................

39

2.7. ДЕРЕВЬЯ ..........................................................................................

39

Операции исключения и добавления в произвольном дереве.......

44

БИБЛИОГРАФИЧЕСКИЙ СПИСОК.....................................................

45

46