|
Вопрос # 6 654/ вопрос открыт / |
|
Здравствуйте, эксперты!
Не могу понять, что не так с топологической сортировкой?
Нужно вывести вершины графа по порядку топологической сортировки.
В одном из примеров у меня получается: 6, 5, 4, 8, 3, 7, 2, 1
А должно быть: 1, 2, 4, 5, 6, 8, 3, 7
Приложение: Переключить в обычный режим- vector <int> arr;
- using namespace std;
-
- void DFS(int n, int **graph, bool *used, int Node)
- {
- used[Node] = true;
- for (int i = 0; i < n; i++)
- if (graph[Node][i] != 0 && !used[i])
- DFS(n, graph, used, i);
- arr.push_back(Node);
- }
-
- void TopologicalSort(int n, int **graph, bool *used)
- {
- for (int i = 0; i < n; ++i)
- used[i] = false;
- arr.clear();
- for (int i = 0; i < n; ++i)
- if (!used[i])
- DFS(n,graph,used,i);
- reverse(arr.begin(), arr.end());
- }
-
 |
Вопрос задал: Egoiste (статус: Посетитель)
Вопрос отправлен: 3 апреля 2017, 20:28
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|