可能重复:
Best algorithm for detecting cycles in a directed graph
这是一个设计算法的作业,以检查有向图是否是dag 我能想到的更好的算法是:
步骤1:查找仅具有传出边的节点。如果没有这样的节点,则这是一个循环
步骤2:在该节点启动DFS。 遍历每条边并检查边缘是否指向已经在堆栈上的节点。如果没有找到这样的边缘,则该连通分量中没有循环。
但令我困惑的是当图表被表示为邻接矩阵和邻接关联时的时间复杂度。
邻接矩阵应该是O(V ^ 2),链表是O(V + E)吗?
还有一个问题是如何编写pesdoo代码,如果图形为dag则输出拓扑排序,如果不是则输出圆形。