Я знаю, что если топологическая сортировка обладает тем свойством, что все пары последовательных вершин в отсортированном порядке связаны ребрами, то топологический порядок сортировки является уникальным. Моя проблема в том, что я не могу реализовать это в C ++, особенно в сравнении. В последнем случае я хотел бы видеть, является ли в списке смежности vetorTop число рядом с ним в топологической сортировке. Но похоже, что in_degree не дает мне такой результат. Вот мой код:
int u;
for (int i=1; i<(int)vetorTop.size(); i++){ //topological sorted
u = vetorTop[i];
list<int>::iterator itr;
for (itr = adj[u].begin(); itr != adj[u].end(); itr++){
if (vetorTop[i+1] == in_degree[*itr]++){
cout << "NOT UNIQUE\n";
return;
}
}
}
Буду благодарен за любой совет и / или совет!
Задача ещё не решена.
Других решений пока нет …