Update README with full documentation
This commit is contained in:
parent
4989641538
commit
1d73bc3159
52
README.md
52
README.md
|
|
@ -0,0 +1,52 @@
|
||||||
|
# Теория конечных графов: Лабораторные работы 1-5
|
||||||
|
|
||||||
|
Проект представляет собой библиотеку на C++17 для работы с графами, реализующую фундаментальные алгоритмы.
|
||||||
|
|
||||||
|
## Содержание
|
||||||
|
1. [ЛР1: Структуры данных](#лр1)
|
||||||
|
2. [ЛР2: MST](#лр2)
|
||||||
|
3. [ЛР3: Эйлеровы циклы/пути](#лр3)
|
||||||
|
4. [ЛР4: Паросочетания](#лр4)
|
||||||
|
5. [ЛР5: Потоки в сетях](#лр5)
|
||||||
|
|
||||||
|
<a name="лр1"></a>
|
||||||
|
## ЛР1: Разработка класса Graph
|
||||||
|
Реализованы три представления графа:
|
||||||
|
- **C**: Матрица смежности
|
||||||
|
- **L**: Списки смежности (`std::set`)
|
||||||
|
- **E**: Список рёбер
|
||||||
|
|
||||||
|
<a name="лр2"></a>
|
||||||
|
## ЛР2: Остовное дерево минимального веса (MST)
|
||||||
|
- **Прим** (на базе `std::priority_queue`)
|
||||||
|
- **Краскал** (DSU)
|
||||||
|
- **Борувка** (DSU)
|
||||||
|
|
||||||
|
<a name="лр3"></a>
|
||||||
|
## ЛР3: Эйлеровы пути и циклы
|
||||||
|
- **Алгоритм Флери** (поиск мостов)
|
||||||
|
- **Алгоритм Иерхольцера** (эффективный O(M) обход)
|
||||||
|
|
||||||
|
<a name="лр4"></a>
|
||||||
|
## ЛР4: Паросочетания
|
||||||
|
- **Алгоритм Куна** для поиска максимального паросочетания в двудольных графах.
|
||||||
|
|
||||||
|
<a name="лр5"></a>
|
||||||
|
## ЛР5: Потоки в сетях
|
||||||
|
- **Эдмондс-Карп** (BFS)
|
||||||
|
- **Диниц** (слоистая сеть)
|
||||||
|
|
||||||
|
## Сборка и запуск
|
||||||
|
### Сборка:
|
||||||
|
```bash
|
||||||
|
g++ -std=c++17 -O2 *.cpp -o graph
|
||||||
|
```
|
||||||
|
### Запуск:
|
||||||
|
```bash
|
||||||
|
./graph [input_file] [output_file]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Формат входных данных
|
||||||
|
- Первая строка: Тип (C, L, E) и количество вершин (N).
|
||||||
|
- Вторая строка: Ориентированность (0/1) и Взвешенность (0/1).
|
||||||
|
- Далее данные согласно выбранному формату.
|
||||||
Loading…
Reference in New Issue
Block a user