文章目录
一、有向无环图、拓扑排序介绍
有向无环图
:无环的有向图
拓扑排序
:由某个集合上的一个偏序得到该集合上的一个全序,称为拓扑排序
偏序
和全序
是离散数学的内容。感兴趣的,可以自行搜索
拓扑排序算法的作用是,检查有向图是否有环
拓扑排序算法步骤:
- 选取有向图顶点中没有入度的点作为初始点
- 去掉由1得到的顶点,及以其为出度的边
- 由于步骤2去掉了某些顶点的边,因此,会产生新的入度为 0 的顶点
- 重复步骤 1,直到入度为 0 的顶点被淘汰完毕
- 检查淘汰的顶点数量。若淘汰顶点数等于图的顶点数,则该图为无环图。否则,有环
二、拓扑排序算法
拓扑排序,对于入度为 0 的点,我们可以用栈来存放。淘汰一个顶点,就令其连通的边为0,再次获取入度为 0 的顶点入栈。直到栈空
void TopoSort