Эйлеров цикл. Эйлеров путь: различия между версиями

Материал из Олимпиадное программирование в УлГТУ
Перейти к навигации Перейти к поиску
(Новая страница: «== Ссылки == * [http://www.e-maxx-ru.1gb.ru/algo/euler_path e-maxx — Нахождение Эйлерова пути] * [http://neerc.ifmo.ru/wiki/index.ph…»)
 
Нет описания правки
Строка 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);
}

Ссылки