拓扑排序实现(伪代码)
·
拓扑排序
void TopologicalSort(Graph G){
InitStack(S);
for(i = 0;i < G.vexnum; i++){
if(indegrdd[i]==0)
Push(S, i);
}
int count =0;
while(!Empty(S)){
Pop(S,i);
print[count++] = i;
for(p = G.vertices[i].firstarc; p; p = p->nextarc){
v = p->adjvex;
if(!(--indegree[v]))
Push(S, v);
}
}
if(count < G.vexnum)
return false;
else
return true;
}
更多推荐



所有评论(0)