拓扑排序

· · 个人记录

变量

函数

代码

int n,deg[N],cnt,ans[N];
void topsort(){
    queue<int>q;
    for(int i=1;i<=n;i++)
        if(!deg[i])
            q.push(i);
    while(q.size()){
        int x=q.front();
           q.pop();
        ans[++cnt]=x;
        for(int i=head[x];i;i=nxt[i]){
            int y=ver[i];
            if(--deg[y]==0)
                q.push(y);
        }
    }
}