②从网中删去该节点,并且删去从该节点出发的所有有向边 。
③重复以上两步,直到剩余的网中不再存在没有前驱的节点为止 。
具体操作过程如下:
若栈非空,则在栈中弹出一个元素,然后枚举这个点能到的每一个点将它的入度-1(删去一条边),如果入度=0,则压入栈中 。
如果没有输出所有的顶点,则有向图中一定存在环
1 //拓扑排序,时间复杂度:O(n+m)2 #include
八、联通分量:
强连通:有向图中,从a能到b并且从b可以到a,那么a和b强连通 。
强连通图:有向图中,任意一对点都满足强连通,则这个图被称为强连通图 。
强联通分量:有向图中的极大强连通子图,就是强连通分量 。
一般用算法求有向图强连通分量:
推一个蛮容易理解的blog:
九、欧拉路径与哈密顿路径:
1.欧拉路径:从某点出发一笔画遍历每一条边形成的路径 。
欧拉回路:在欧拉路径的基础上回到起点的路径(从起点出发一笔画遍历每一条边) 。
欧拉路径存在:
无向图:当且仅当该图所有顶点的度数为偶数 或者 除了两个度数为奇数外其余的全是偶数 。
有向图:当且仅当该图所有顶点 出度=入度 或者 一个顶点 出度=入度+1,另一个顶点 入度=出度+1,其他顶点 出度=入度
欧拉回路存在:
无向图:每个顶点的度数都是偶数,则存在欧拉回路 。
有向图:每个顶点的入度都等于出度,则存在欧拉回路 。
求欧拉路径/欧拉回路算法常常用算法:
再推一个蛮容易理解的blog:
2.哈密顿路径:每个点恰好经过一次的路径是哈密顿路径 。
哈密顿回路:起点与终点之间有边相连的哈密顿路径是哈密顿回路 。
最近发现一些网站盗用我的blog,这实在不能忍(?把关于我的名字什么的全部删去只保留文本啥意思 。。)!!希望各位转载引用时请注明出处,谢谢配合噢~
【提高组精英班2017清北学堂集训笔记——图论】原博客唯一地址:
- Vue 引入 mui 组件
- matlab 求解线性方程组之LU分解
- 不懂电脑如何买电脑,我自己不懂组装电脑,可以在网上买配件,自己组装吗
- 路由器的三种分组交换方式
- 日用行业外贸ERP软件系统,提高工作效率降低成本
- mysql 表组是什么_数据库中属性组究竟是什么含义?
- PS创建选区的工具-----套索工具组
- IGMP Snooping的工作机制
- Listener的常用方法
- 上行速度有什么用,ADSL提高上行速度有哪些途径?