您当前的位置:首页 > 计算机 > 编程开发 > Python

Python实现有向无环图的顶点拓扑排序算法

时间:01-07来源:作者:点击数:

问题描述:

拓扑排序(Topological sort)是指把有向无环图(Directed Acyclic Graph,简称DAG)中的顶点排列为一个线性序列,对于任意两个顶点u和v,如果存在从顶点u到顶点v的通路,那么在线性序列中u必然在v之前。

拓扑排序算法步骤为:1)从图中选择一个入度为0的顶点(如果有多个的话就任选一个),输出该顶点,如果没有入度为0的顶点则算法结束;2)从图中删除刚输出的顶点以及该顶点的所有出边,然后跳转到第1步。算法结束后如果输出的顶点数量小于图中顶点数量,则图中必然存在回路。容易得知,拓扑排序的结果有可能不是唯一的。

参考代码:

图片

运行结果:

图片
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门