https://github.com/blvxme/vk-internship-task
Поиск кратчайшего расстояния в графе
https://github.com/blvxme/vk-internship-task
cmake cpp
Last synced: over 1 year ago
JSON representation
Поиск кратчайшего расстояния в графе
- Host: GitHub
- URL: https://github.com/blvxme/vk-internship-task
- Owner: blvxme
- License: mit
- Created: 2025-03-17T10:01:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-19T16:07:19.000Z (over 1 year ago)
- Last Synced: 2025-03-19T16:33:15.335Z (over 1 year ago)
- Topics: cmake, cpp
- Language: C++
- Homepage:
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Поиск кратчайшего расстояния в графе
### Задание
Необходимо написать программу на C++, которая будет считать кратчайшее расстояние
от переданной вершины (номер) до всех остальных вершин в ненаправленном графе.
Расстояние до каждой вершины от переданной необходимо вывести на экран.
Структура графа должна считываться из файла. Пример файла `graph.txt`:
```
5
4
0 1
0 4
1 2
1 3
4
```
Файл имеет фиксированную структуру.
- Первая строка - количество вершин графа.
- Вторая строка - количество ребер в графе.
- Далее идут ребра графа ("0 1" означает, что существует путь от вершины с номером
0 до вершины с номером 1).
- Длина каждого ребра равна 1.
- Последняя строка - номер вершины, от которой необходимо посчитать расстояние до
всех остальных.
- Нумерация врешин всегда начинается с нуля.
- Допускаем, что точно существует путь до каждой вершины от каждой.
Вывод для тестовых данных выше:
```
1
2
3
3
0
```
### Использование
- Склонируйте репозиторий (`git clone git@github.com:blvxme/vk-internship-task.git`)
и перейдите склонированный репозиторий (`cd vk-internship-task`).
- Для сборки проекта сначала сгенерируйте конфигурацию для системы сборки
(`cmake -S . -B build -G "Unix Makefiles"`), а затем соберите проект
(`cd build && make && cd ..`).
- Для запуска тестов выполните `./build/test/vk-internship-task-test`
- Для запуска проекта выполните `./build/src/vk-internship-task-exe /path/to/graph.txt`
(в качестве примера графа можно использовать `graph.txt` внутри репозитория).