| 
| 
 | Вопрос # 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.
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |