Практики(Вариант №7) / Практическая работа №6
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
ГРАФЫ Отчет по практической работе №6 по дисциплине «Структуры данных»
Студент гр.
________
__.__.2025
Принял
Преподаватель кафедры КИБЭВС
________ Д.Р. Уразаев __.__.2025
Томск 2025
Задание
Реализовать возможность работы с графом N узлов, M ребер. Выберете самостоятельно структуру. Обеспечьте следующие интерфейсные методы:
•ввод графа (можно случайным образом,можно вводить с клавиатуры) НЕДОПУСТИМО работать только с конечным числом ребер
иузлов. Приложение должно позволять вводить разные графы.
•вывод графа - матрица смежности или весов
Вариант 3. Задана система дорог. Определить кратчайшее расстояние из города А в город В, при этом путь не должен проходить через город С и D. Восстановить путь.
2
|
Оглавление |
Задание................................................................................................................... |
2 |
Введение................................................................................................................. |
4 |
1 ХОД РАБОТЫ.................................................................................................... |
5 |
Заключение............................................................................................................. |
9 |
Приложение А...................................................................................................... |
10 |
3
Введение
Целью работы является реализация программы для работы с графами, представляющими систему дорог с переменным числом узлов и рёбер. Программа позволяет вводить графы случайным образом или с клавиатуры и выводить матрицу смежности или весов. Основное внимание уделяется нахождению города с максимальной суммой кратчайших расстояний до остальных городов.
4
1 ХОД РАБОТЫ
В работе реализуется ориентированный граф и матрица смежности. Ориентированный граф — В ориентированном графе рёбра имеют
направление, что означает, что если есть ребро от узла A к узлу B, то это не подразумевает наличие ребра от B к A.
Матрица смежности — это квадратная матрица, которая используется для представления графа. Если граф содержит N узлов, матрица будет размером NxN.
Graph – инициализирует граф с заданным количеством городов, проверяет, чтобы количество городов было больше нуля, создает матрицу смежности, устанавливая расстояние между городами на 0 для одного и того же города и на очень большое значение для всех остальных пар. (рис .1)
5
Рисунок 1 — Graph
AddEdge – добавляет ребро между двумя городами с заданным весом, проверяет корректность индексов и положительность веса, устанавливает расстояние в матрице смежности для ориентированного графа (рис. 2)
Рисунок 2 — AddEdge
6
PrintAdjMatrix — выводит матрицу смежности на экран (рис. 3)
Рисунок 3 — PrintAdjMatrix
FloydWarshall – реализует алгоритм Флойда-Уоршелла для нахождения кратчайших расстояний между всеми парами городов, создаёт новую матрицу расстояний, копируя данные из матрицы смежности и обновляя значения, если обнаруживаются более короткие пути через промежуточные города (рис. 4)
7
Рисунок 4 — FloydWarshall
FindShortestPathWithAvoidance — предназначена для нахождения кратчайшего пути между двумя городами в ориентированном графе с исключением указанных городов из маршрута. (рис. 5)
8
Рисунок 5 — FindShortestPathWithAvoidance
9
Заключение
В ходе работы была успешно реализована программа для анализа графов дорожной сети. Выполнены задачи по вводу, выводу и поиску города с максимальными кратчайшими расстояниями. Это может быть полезным для оптимизации транспортных маршрутов.
10
