vector<int> G[MAXN];
int n,m,inDegree[MAXN];
bool toplogicalSort(){
int num=0;
queue<int> q;
FOR(i,0,n-1)
{
if(inDegree[i]==0)q.push(i);
}
while(!q.empty()){
int u=q.front();
q.pop();
for(int i=0;i<G[u].size();i++){
int v=G[u][i];
inDegree[v]--;
if(inDegree[v]==0)q.push(v);
}
num++;
G[u].clear();
}
if(num==n)return true;
else return false;
}
拓扑排序
最新推荐文章于 2024-03-27 13:54:30 发布