From 1d73bc31594785cf67bd54551021c43227c08e60 Mon Sep 17 00:00:00 2001 From: Triton Date: Tue, 15 Sep 2026 00:28:59 +0500 Subject: [PATCH] Update README with full documentation --- README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/README.md b/README.md index e69de29..4961877 100644 --- a/README.md +++ b/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) + + +## ЛР1: Разработка класса Graph +Реализованы три представления графа: +- **C**: Матрица смежности +- **L**: Списки смежности (`std::set`) +- **E**: Список рёбер + + +## ЛР2: Остовное дерево минимального веса (MST) +- **Прим** (на базе `std::priority_queue`) +- **Краскал** (DSU) +- **Борувка** (DSU) + + +## ЛР3: Эйлеровы пути и циклы +- **Алгоритм Флери** (поиск мостов) +- **Алгоритм Иерхольцера** (эффективный O(M) обход) + + +## ЛР4: Паросочетания +- **Алгоритм Куна** для поиска максимального паросочетания в двудольных графах. + + +## ЛР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). +- Далее данные согласно выбранному формату.