‘壹’ 数据结构用什么方法来判断有向图是否存在回路
数据结构中用拓扑排序来判断有向图是否存在回路。
用顶点表示活动、边表示活动间先后关系的有向图称做顶点活动网(AOV网)。一个AOV网应该是一个有向无环图,即不应该带有回路,因为若带有回路,则回路上的所有活动都无法进行。
在AOV网中,若不存在回路,则所有活动可排列成一个线性序列,使得每个活动的所有前驱活动都排在该活动的前面,数据结构中把此序列叫做拓扑序列,由AOV网构造拓扑序列的过程叫做拓扑排序。
综上,若一个有向图中存在拓扑排序,则有向图中不存在回路。
(1)什么算法看是否有回路扩展阅读:
在有向图进行拓扑排序的算法思想:
由AOV网构造拓扑序列的拓扑排序算法主要是循环执行以下两步,直到不存在入度为0的顶点为止。
1、选择一个入度为0的顶点并输出之;
2、从网中删除此顶点及所有出边。
循环结束后,若输出的顶点数小于网中的顶点数,则输出“有回路”信息,否则输出的顶点序列就是一种拓扑序列。
参考资料来源:网络-拓扑排序
参考资料来源:网络-有向图
‘贰’ 克鲁斯卡尔算法是怎样判断是否构成了回路
使用遍历方法,同时存储他们的父亲节点,如果父亲节点不一样,就说明有回路