- •Общие положения
- •Цель и задачи курсовой работы
- •Порядок выполнения
- •Требования к оформлению пояснительной записки
- •Краткие теоретические сведения
- •Основные определения теории графов
- •Способы представления графов в памяти эвм
- •Матрица смежностей графа
- •Матрица инцидентностей графа
- •Задание графа массивом преемников вершин (fo-представление графа)
- •Задание графа массивом предшественником вершин (fi-представление)
- •Модифицированное fo-представление графа (mfo-представление)
- •Модифицированное fi-представление графа (mfi-представление)
- •Сокращенные mfо и mfi-представления неорграфов
- •Нисходящее проектирование
- •Технология проектирования алгоритмов
- •Принципы нисходящего проектирования:
- •Варианты заданий для курсовой работы
- •Варианты расчетных заданий
- •Организация защиты курсовой работы
- •Постановка задачи
- •Входные данные
- •Аномалии
- •Функциональные тесты
- •Нисходящее проектирование
- •Основной алгоритм
- •Нисходящее проектирование на класcах
- •Методы public Kurs_Proekt ()
- •Библиографический список
- •Содержание
Задание графа массивом преемников вершин (fo-представление графа)
В целях экономичного представления графа в памяти ЭВМ часто используют FO -представление графа, позволяющее отобразить матрицу смежностей графа одномерным массивом FO, формирующимся следующим образом: сначала записываются номера вершин (в любом порядке), в которые заходят дуги из первой вершины, затем ставится разделитель 0, далее – номера вершин, в которые заходят дуги из второй вершины, после чего ставится разделитель 0 и т.д. Таким образом, для неорграфа и мультиграфа строится массив FO длиной 2xq+N, так как каждое ребро учитывается дважды, для орграфа и псевдографа – массив FO длиной q+N. Будем считать, что величины N и q заданы и на их основе построен массив FO. Если на вершинах и (или) ребрах (дугах) заданы веса, то применяются дополнительные массивы V(N) и W(q), где элементы vi и wj содержат значения весов для вершин vi и ребра (дуги) lj.
Например,
одномерный массив FO
для орграфа на рис. 1,а имеет вид:
,
а для неорграфа на рис. 11,б:
.
Задание графа массивом предшественником вершин (fi-представление)
Массив FI формируется так: сначала записывают номера вершин (в любом порядке), из которых исходят дуги в первую вершину, затем ставят разделитель 0, далее записывают номера вершин, из которых исходят дуги во вторую вершину, и ставят разделитель 0 и т.д. Таким образом, для неорграфа и мультиграфа строится массив FI длиной 2xq+N, так как каждое ребро учитывается дважды. Для орграфа и псевдографа массив FI имеет длину q+N. Заметим, что для неорграфов и мультиграфов FO и FI представления совпадают.
Например,
одномерный массив FI
для орграфа на рис. 1,а имеет вид:
.
Модифицированное fo-представление графа (mfo-представление)
В MFO -представлении графа вместо разделителей 0 используется дополнительный массив P длиной N, в котором указываются верхние границы окончания списков номеров вершин в массиве G, смежных с заданной вершиной по выходящим дугам. Для неорграфов и мультиграфов длина массива G равна 2xq, а массива P – N. Для орграфов и псевдографов длина массива G равна q, а массива P – N.
Для хранения весов вершин и ребер (дуг) применяются дополнительные массивы V и W, где элементы vi и wj содержат значения весов для вершины vi и ребра (дуги) lj. Для неорграфов и мультиграфов MFO и FI представления совпадают.
Например, для орграфа на рис. 1,а массивы G и P MFO-представления графа имеют вид:
,
,
а для неорграфа на рис. 11,б:
,
.
Модифицированное fi-представление графа (mfi-представление)
В
отличие от MFO-представления
графа в MFI-представлении
указывается в массиве P
верхние границы окончания списков
вершин, смежных с заданной вершиной по
входящим в нее дугам. Например, для
орграфа на рис. 1,а MFI-представление
графа имеет вид:
,
,
а для неорграфа на рис. 11,б:
,
.
Сокращенные mfо и mfi-представления неорграфов
В целях экономии памяти обыкновенные графы можно представлять следующим образом: формируют массив FO, в котором сначала записывают номера вершин, смежных с первой вершиной, далее разделитель 0, затем номера вершин, смежных со второй вершиной и номера которых больше двух, а также разделитель 0 и т.д. Результатом является сокращенное FO-представление. Сокращенное MFO-представление получается заменой разделителей 0 на дополнительный массив Р, содержащий верхние границы списка номеров вершин, смежных с заданной вершиной, и больших, чем номер заданной вершины.
Например, для неорграфа на рис. 11,б сокращенное FO-представление имеет вид
,
а сокращенное MFO-представление:
,
.
