博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法笔记--拓扑排序
阅读量:6800 次
发布时间:2019-06-26

本文共 593 字,大约阅读时间需要 1 分钟。

算法笔记

1.利用dfs对DAG拓扑排序

当从某顶点v出发的DFS搜索完成时,v的所有后继顶点必定均已被访问过(想像它们均已被删除),此时的v相当于是无后继的顶点,因此在DFS算法返回之前输出顶点v即可得到 DAG的逆拓扑序列。

模板(算法竞赛入门经典):

 

int g[N][N];int vis[N];int topo[N];int t,n;bool dfs(int u){    vis[u]=-1;    for(int v=0;v

 2.队列实现拓扑排序,明显好理解

以下是判环版

bool topo_sort(int n){    q.clear();    int cnt=0;    for(int i=1;i<=n;i++){        if(tin[i]==0)cnt++,q.push(i);    }    while(!q.empty()){        int u=q.front();        q.pop();        for(int v:g[u]){            tin[v]--;            if(tin[v]==0)cnt++,q.push(v);        }    }    return cnt==n;}

 

转载于:https://www.cnblogs.com/widsom/p/7294926.html

你可能感兴趣的文章
融合式架构Nutanix深入分析一
查看>>
RHEL6.3下配置简单Apache https
查看>>
利用Cocos2dx-3.0新物理特性模拟弹珠迷宫
查看>>
Office 365系列之三:Office365初体验
查看>>
VMware View client for iPad在医疗行业的应用
查看>>
Altiris 7.1 Agent
查看>>
独家爆料:创宇云与小鸟云的故事
查看>>
Windows Server 2012 RMS for Exchange Server 2013
查看>>
Linux网络IP配置
查看>>
FireEye:K3chang行动***欧洲外交部门
查看>>
关于Spring MVC 4,你需要知道的那些事
查看>>
如何远程调试Python代码
查看>>
你会用Python写洗脑神曲吗?
查看>>
kubernetes集群配置serviceaccount
查看>>
MyBatis多参数传递之默认命名方式示例——MyBatis学习笔记之十二
查看>>
Exchange 2013部署系列之(六)配置邮件流和客户端访问
查看>>
创业三年,走通一条路
查看>>
Mac 平台下功能强大的Shimo软件使用指南
查看>>
Hyper-V 3中虚拟机CPU竞争机制
查看>>
移动搜索的4个主要入口
查看>>