拓扑排序

Kahn算法:1)从有向图中选一个没有入度的顶点

       2)从图中删除所有和它有关的边

       3)重复上述步骤,直至所有顶点输出,或者只剩下环

      (可以判断一个图是否有环)

暴力解法:

 

    queue<int>q;
    while(!q.empty()) q.pop(); 
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(!vis[j])
            {
                for(int k=1;k<=n;k++)
                    if(v[j][k]) vis[k]--;
                q.push(j);
                vis[j]--;
                break;
            }
        }
    }
    while(!q.empty()) { cout<<q.top()<<" "; q.pop(); }

 

posted @ 2019-10-14 23:27  __MEET  阅读(114)  评论(0编辑  收藏  举报