首页 > 编程语言 > 详细

拓扑排序

时间:2019-10-15 01:01:03      阅读:67      评论:0      收藏:0      [点我收藏+]

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(); }

 

拓扑排序

原文:https://www.cnblogs.com/Shallow-dream/p/11674899.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!