我知道如果拓扑排序具有排序顺序中所有连续顶点对由边连接的属性,那么拓扑排序顺序是唯一的。我的问题是我无法在 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;
}
}
}
我很乐意接受任何提示和/或建议!