- •Общие положения
- •Цель и задачи курсовой работы
- •Порядок выполнения
- •Требования к оформлению пояснительной записки
- •Краткие теоретические сведения
- •Основные определения теории графов
- •Способы представления графов в памяти эвм
- •Матрица смежностей графа
- •Матрица инцидентностей графа
- •Задание графа массивом преемников вершин (fo-представление графа)
- •Задание графа массивом предшественником вершин (fi-представление)
- •Модифицированное fo-представление графа (mfo-представление)
- •Модифицированное fi-представление графа (mfi-представление)
- •Сокращенные mfо и mfi-представления неорграфов
- •Нисходящее проектирование
- •Технология проектирования алгоритмов
- •Принципы нисходящего проектирования:
- •Варианты заданий для курсовой работы
- •Варианты расчетных заданий
- •Организация защиты курсовой работы
- •Постановка задачи
- •Входные данные
- •Аномалии
- •Функциональные тесты
- •Нисходящее проектирование
- •Основной алгоритм
- •Нисходящее проектирование на класcах
- •Методы public Kurs_Proekt ()
- •Библиографический список
- •Содержание
Способы представления графов в памяти эвм
Для представления графов можно использовать различные структуры данных. Выбор структуры данных зависит от операторов, которые будут применяться к вершинам и ребрам (дугам) графа.
Матрица смежностей графа
Одним из наиболее общих представлений орграфа G = (V, Е) является матрица смежности. Предположим, что множество вершин V= {1, 2, ..., n}. Матрица смежности для орграфа G — это матрица размера n х n со значениями булевого типа, где A[i,j] = true тогда и только тогда, когда существует дуга из вершины i в вершину j. Часто в матрицах смежности значение true заменяется на 1, а значение false — на 0. Время доступа к элементам матрицы смежности зависит от размеров множества вершин и множества дуг. Представление орграфа в виде матрицы смежности удобно применять в тех алгоритмах, в которых надо часто проверять существование данной дуги. Для мультиграфа вместо 0 или 1 указывается число, равное кратности ребер. На рис. 12 показаны матрицы смежностей: для орграфа на рис. 1,а – а, для неорграфа на рис. 11,б – б, для мультиграфа на рис. 2,а – в, для наглядности вместо 0 стоит «пустая ячейка.
|
1 |
2 |
3 |
4 |
5 |
6 |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
1 |
|
1 |
|
|
|
|
|
|
1 |
|
|
|
1 |
1 |
1 |
|
|
1 |
|
1 |
|
2 |
|
|
2 |
|
|
|
1 |
1 |
|
|
|
2 |
|
|
|
1 |
1 |
1 |
|
|
2 |
|
|
|
|
1 |
|
3 |
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
1 |
|
|
3 |
|
|
|
|
|
|
4 |
1 |
|
|
|
1 |
|
|
|
4 |
1 |
1 |
|
|
|
|
|
|
4 |
|
2 |
|
|
2 |
|
5 |
|
|
|
1 |
|
|
|
|
5 |
1 |
1 |
|
|
|
|
|
|
5 |
|
|
|
2 |
|
|
6 |
|
|
1 |
|
|
1 |
|
|
6 |
1 |
1 |
1 |
|
|
|
|
|
6 |
|
|
1 |
|
|
|
а |
|
|
б |
|
|
в |
Рис. 12
Если граф не имеет петель, то на диагонали матрицы расположены нули. Для неорграфа матрица симметрична относительно главной диагонали и сумма элементов матрицы в каждой строке и в каждом столбце равна степеням соответствующих вершин.
Если на вершинах графа заданы веса, вводится дополнительный массив V длиной N, где элемент vi содержит значение веса вершин графа с номером i.
Если на ребрах (дугах) заданы веса, то для неорграфа и орграфа применяется матрица, совпадающая со структурой матрицы смежностей, но значения элементов равны весам соответствующих связей.
Для мультиграфов и псевдографов с весами на ребрах и петлях используется трехмерная матрица, имеющая структуру строк и столбцов, аналогичную структуре матрицы смежностей, а третья размерность применяется для записи веса каждого ребра, дуги, петли.