1

可能重复:
在有向图中检测循环的最佳算法

这是一项设计一种算法来检查有向图是否为 dag 的作业。
我能想到的更好的算法是:

第 1 步:找到一个只有出边的节点。如果没有这样的节点,那么这些是一个循环

第 2 步:在该节点上启动 DFS。遍历每条边并检查边是否指向已经在堆栈上的节点。如果没有找到这样的边缘,则该连接组件中没有循环。

但是让我感到困惑的是当图表示为邻接矩阵和邻接链接时的时间复杂度。

邻接矩阵应该是O(V^2),链表应该是O(V+E)?

还有一个问题是如何编写 pesdoo 代码,如果图是 dag,它应该输出拓扑排序,如果不是,它应该输出拓扑排序。

4

0 回答 0