我知道如果拓扑排序具有排序顺序中所有连续顶点对通过边连接的属性,则拓扑排序顺序是唯一的。我的问题是我无法在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;
}
}
}
我会对任何小费和/或建议感到满意!