- •Теоретические положения
- •1.1. Деревья. Основные понятия
- •1.2. Реализация деревьев
- •1.3. Авл-деревья
- •1.4. В-деревья
- •1.5. Алгоритмы на графах
- •2. Задания к лабораторному практикуму
- •2.3. Лабораторная работа №3 «Программирование алгоритмов реализации и обработки графов»
- •3. Содержание отчета
- •Приложение
- •Нелинейные структуры данных
2.3. Лабораторная работа №3 «Программирование алгоритмов реализации и обработки графов»
Цель работы
Получение навыков реализации алгоритмов обхода графов и построения минимальных остовных деревьев.
Задание
Осуществить программную реализацию алгоритма обработки графа, выбрав из табл. 3 приложения алгоритм и начальные параметры, в соответствии с заданным номером варианта. В программе необходимо предусмотреть удобный пользовательский интерфейс, позволяющий создавать граф (пользователем или генерировать автоматически), выполнять требуемый алгоритм и визуализировать этапы выполнения алгоритма и результаты.
Контрольные вопросы
1. Определение графа.
2. Алгоритмы обхода графа в глубину и по уровням.
4. Алгоритм Дейкстры-Прима построения МОД.
5. Алгоритм Крускала построения МОД.
3. Содержание отчета
1. Титульный лист.
Задание кафедры, соответствующее варианту, номер варианта.
Цель работы.
Алгоритм.
Листинг программы с необходимыми комментариями.
Результаты выполнения.
Выводы.
Отчет может также включать краткие теоретические сведения.
4. Библиографический список
Ахо, А. В. Структуры данных и алгоритмы / А. В. Ахо, Дж. Хопкрофт, Дж. Д. Ульман. – М.: "Вильямс", 2000. – 384 с.
Кондратьева, С. Д. Введение в структуры данных / С. Д. Кондратьева. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2000. – 376 с.
Вирт, Н. Алгоритмы и структуры данных / Н. Вирт. – М.: Мир, 1989. – 360 с.
Макконнелл, Дж. Основы современных алгоритмов / Дж. Макконнелл. – М.: Техносфера, 2004. – 368 с.
Кнут, Д. Э. Искусство программирования, том 3. Сортировка и поиск / Д. Э. Кнут. – М.: "Вильямс", 2000. – 832 с.
Приложение
Таблица 1
Задания к лабораторной работе №1
№ варианта |
Ключ |
Удаляемый узел |
Распределение |
Реализация |
Степень дерева |
Метод обхода | |||||||||||
int |
char[] |
заменяется самым левым дочерним узлом |
заменяется самым правым дочерним узлом |
равномерное |
нормальное |
связный список дочерних узлов |
список дочерних узлов, два массива |
список дочерних узлов, массив структур, 3 поля |
указатели |
4 |
5 |
6 |
7 |
прямой |
обратный |
симметричный | |
1 |
+ |
|
+ |
|
+ |
|
+ |
|
|
|
+ |
|
|
|
+ |
|
|
2 |
|
+ |
+ |
|
+ |
|
+ |
|
|
|
+ |
|
|
|
|
+ |
|
3 |
+ |
|
|
+ |
+ |
|
+ |
|
|
|
+ |
|
|
|
|
|
+ |
4 |
|
+ |
|
+ |
+ |
|
+ |
|
|
|
+ |
|
|
|
+ |
|
|
5 |
+ |
|
+ |
|
+ |
|
|
+ |
|
|
+ |
|
|
|
|
+ |
|
6 |
|
+ |
+ |
|
+ |
|
|
+ |
|
|
+ |
|
|
|
|
|
+ |
7 |
+ |
|
|
+ |
+ |
|
|
+ |
|
|
+ |
|
|
|
+ |
|
|
8 |
|
+ |
|
+ |
+ |
|
|
+ |
|
|
+ |
|
|
|
|
+ |
|
9 |
+ |
|
+ |
|
+ |
|
|
|
+ |
|
+ |
|
|
|
|
|
+ |
10 |
|
+ |
+ |
|
+ |
|
|
|
+ |
|
+ |
|
|
|
+ |
|
|
11 |
+ |
|
|
+ |
|
+ |
|
|
+ |
|
+ |
|
|
|
|
+ |
|
12 |
|
+ |
|
+ |
|
+ |
|
|
+ |
|
+ |
|
|
|
|
|
+ |
13 |
+ |
|
+ |
|
|
+ |
|
|
|
+ |
+ |
|
|
|
+ |
|
|
14 |
|
+ |
+ |
|
|
+ |
|
|
|
+ |
+ |
|
|
|
|
+ |
|
15 |
+ |
|
|
+ |
|
+ |
|
|
|
+ |
+ |
|
|
|
|
|
+ |
16 |
|
+ |
|
+ |
|
+ |
|
|
|
+ |
+ |
|
|
|
+ |
|
|
17 |
+ |
|
+ |
|
|
+ |
+ |
|
|
|
|
+ |
|
|
|
+ |
|
18 |
|
+ |
+ |
|
|
+ |
+ |
|
|
|
|
+ |
|
|
|
|
+ |
19 |
+ |
|
|
+ |
|
+ |
+ |
|
|
|
|
+ |
|
|
+ |
|
|
20 |
|
+ |
|
+ |
|
+ |
+ |
|
|
|
|
+ |
|
|
|
+ |
|
21 |
+ |
|
+ |
|
+ |
|
|
+ |
|
|
|
+ |
|
|
|
|
+ |
22 |
|
+ |
+ |
|
+ |
|
|
+ |
|
|
|
+ |
|
|
+ |
|
|
23 |
+ |
|
|
+ |
+ |
|
|
+ |
|
|
|
+ |
|
|
|
+ |
|
24 |
|
+ |
|
+ |
+ |
|
|
+ |
|
|
|
+ |
|
|
|
|
+ |
25 |
+ |
|
+ |
|
+ |
|
|
|
+ |
|
|
+ |
|
|
+ |
|
|
26 |
|
+ |
+ |
|
+ |
|
|
|
+ |
|
|
+ |
|
|
|
+ |
|
27 |
+ |
|
|
+ |
+ |
|
|
|
+ |
|
|
+ |
|
|
|
|
+ |
28 |
|
+ |
|
+ |
+ |
|
|
|
+ |
|
|
+ |
|
|
+ |
|
|
29 |
+ |
|
+ |
|
+ |
|
|
|
|
+ |
|
+ |
|
|
|
+ |
|
30 |
|
+ |
+ |
|
+ |
|
|
|
|
+ |
|
+ |
|
|
|
|
+ |
31 |
+ |
|
|
+ |
|
+ |
|
|
|
+ |
|
+ |
|
|
+ |
|
|
32 |
|
+ |
|
+ |
|
+ |
|
|
|
+ |
|
+ |
|
|
|
+ |
|
33 |
+ |
|
+ |
|
|
+ |
+ |
|
|
|
|
|
+ |
|
|
|
+ |
34 |
|
+ |
+ |
|
|
+ |
+ |
|
|
|
|
|
+ |
|
+ |
|
|
35 |
+ |
|
|
+ |
|
+ |
+ |
|
|
|
|
|
+ |
|
|
+ |
|
36 |
|
+ |
|
+ |
|
+ |
+ |
|
|
|
|
|
+ |
|
|
|
+ |
37 |
+ |
|
+ |
|
|
+ |
|
+ |
|
|
|
|
+ |
|
+ |
|
|
Таблица 2
Задания к лабораторной работе №2
№ |
ключ |
Вид дерева | ||||||
int |
char |
float |
int[] |
char[] |
float[] |
АВЛ, реализация |
В, порядок | |
1 |
+ |
|
|
|
|
|
+, указатели |
|
2 |
|
+ |
|
|
|
|
+, указатели |
|
3 |
|
|
+ |
|
|
|
+, указатели |
|
4 |
|
|
|
+ |
|
|
+, указатели |
|
5 |
|
|
|
|
+ |
|
+, указатели |
|
6 |
|
|
|
|
|
+ |
+, указатели |
|
7 |
|
|
|
|
+ |
|
|
+, 3 |
8 |
|
+ |
|
|
|
|
|
+, 4 |
9 |
|
|
+ |
|
|
|
|
+, 8 |
10 |
|
|
|
+ |
|
|
|
+, 6 |
11 |
|
|
|
|
|
+ |
|
+, 7 |
12 |
+ |
|
|
|
|
|
|
+, 9 |
13 |
|
|
|
|
|
+ |
+, массив |
|
14 |
|
+ |
|
|
|
|
|
+, 6 |
15 |
|
|
|
+ |
|
|
|
+, 4 |
16 |
+ |
|
|
|
|
|
+, массив |
|
17 |
|
|
+ |
|
|
|
|
+, 5 |
18 |
|
|
|
|
+ |
|
+, массив |
|
19 |
|
|
|
+ |
|
|
+, массив |
|
20 |
+ |
|
|
|
|
|
|
+, 4 |
21 |
|
+ |
|
|
|
|
|
+, 7 |
22 |
|
|
+ |
|
|
|
|
+, 3 |
23 |
|
+ |
|
|
|
|
+, массив |
|
24 |
|
|
+ |
|
|
|
+, массив |
|
25 |
|
|
|
+ |
|
|
|
+, 5 |
26 |
|
|
|
|
+ |
|
|
+, 9 |
27 |
|
|
|
|
|
+ |
|
+, 4 |
28 |
+ |
|
|
|
|
|
+, связный список дочерних узлов |
|
29 |
|
+ |
|
|
|
|
+, связный список дочерних узлов |
|
30 |
|
|
+ |
|
|
|
+, связный список дочерних узлов |
|
31 |
|
|
|
+ |
|
|
+, связный список дочерних узлов |
|
32 |
|
|
|
|
+ |
|
+, связный список дочерних узлов |
|
33 |
|
|
|
|
|
+ |
+, связный список дочерних узлов |
|
34 |
+ |
|
|
|
|
|
|
+, 8 |
35 |
|
|
+ |
|
|
|
|
+, 10 |
36 |
|
|
|
+ |
|
|
+, список дочерних узлов, два массива |
|
37 |
|
|
|
|
+ |
|
+, список дочерних узлов, два массива |
|
Таблица 3
Задания к лабораторной работе №3
№ |
Алгоритм |
Граф |
Степень графа | |||||||
обхода в глубину |
обхода по уровням |
построения МОД Дейкстры-Прима |
построения МОД Крускала |
ориентированный |
неориен-тированный |
4 |
5 |
6 |
7 | |
1 |
+ |
|
|
|
+ |
|
+ |
|
|
|
2 |
|
+ |
|
|
+ |
|
+ |
|
|
|
3 |
|
|
+ |
|
+ |
|
+ |
|
|
|
4 |
|
|
|
+ |
+ |
|
+ |
|
|
|
5 |
+ |
|
|
|
|
+ |
+ |
|
|
|
6 |
|
+ |
|
|
|
+ |
+ |
|
|
|
7 |
|
|
+ |
|
|
+ |
+ |
|
|
|
8 |
|
|
|
+ |
|
+ |
+ |
|
|
|
9 |
+ |
|
|
|
+ |
|
|
+ |
|
|
10 |
|
+ |
|
|
+ |
|
|
+ |
|
|
11 |
|
|
+ |
|
+ |
|
|
+ |
|
|
12 |
|
|
|
+ |
+ |
|
|
+ |
|
|
13 |
+ |
|
|
|
|
+ |
|
+ |
|
|
14 |
|
+ |
|
|
|
+ |
|
+ |
|
|
15 |
|
|
+ |
|
|
+ |
|
+ |
|
|
16 |
|
|
|
+ |
|
+ |
|
+ |
|
|
17 |
+ |
|
|
|
+ |
|
|
|
+ |
|
18 |
|
+ |
|
|
+ |
|
|
|
+ |
|
19 |
|
|
+ |
|
+ |
|
|
|
+ |
|
20 |
|
|
|
+ |
+ |
|
|
|
+ |
|
21 |
+ |
|
|
|
|
+ |
|
|
+ |
|
22 |
|
+ |
|
|
|
+ |
|
|
+ |
|
23 |
|
|
+ |
|
|
+ |
|
|
+ |
|
24 |
|
|
|
+ |
|
+ |
|
|
+ |
|
25 |
+ |
|
|
|
+ |
|
|
|
|
+ |
26 |
|
+ |
|
|
+ |
|
|
|
|
+ |
27 |
|
|
+ |
|
+ |
|
|
|
|
+ |
28 |
|
|
|
+ |
+ |
|
|
|
|
+ |