Структуры и алгоритмы / Типы и структуры данных
.pdf
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
