Эйлеров цикл. Эйлеров путь: различия между версиями
Перейти к навигации
Перейти к поиску
Ctrlalt (обсуждение | вклад) (Новая страница: «== Ссылки == * [http://www.e-maxx-ru.1gb.ru/algo/euler_path e-maxx — Нахождение Эйлерова пути] * [http://neerc.ifmo.ru/wiki/index.ph…») |
Ctrlalt (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
void euler(map<int, multiset<int>> &graph, int v, vector<int> &cycle) { | |||
while (!graph[v].empty()) { | |||
int to = *graph[v].begin(); | |||
graph[v].erase(graph[v].find(to)); | |||
graph[to].erase(graph[to].find(v)); | |||
euler(graph, to, cycle); | |||
} | |||
cycle.push_back(v); | |||
} | |||
== Ссылки == | == Ссылки == | ||
* [http://www.e-maxx-ru.1gb.ru/algo/euler_path e-maxx — Нахождение Эйлерова пути] | * [http://www.e-maxx-ru.1gb.ru/algo/euler_path e-maxx — Нахождение Эйлерова пути] |
Версия от 21:18, 17 июня 2021
void euler(map<int, multiset<int>> &graph, int v, vector<int> &cycle) { while (!graph[v].empty()) { int to = *graph[v].begin(); graph[v].erase(graph[v].find(to)); graph[to].erase(graph[to].find(v)); euler(graph, to, cycle); } cycle.push_back(v); }