请给我伪代码,以便使用BFS查找循环。我知道还存在其他此类问题,但没有给出代码。
以防万一,DFS更适合该任务,在有向图中更是如此。如果您已经知道,请忽略此。
至于伪代码,在一个无向图中,它是一个传统的BFS,它会中止并报告在到达先前标记为已访问的节点时发现的循环。您可以在此处找到BFS的伪代码。
在有向图中,它变得更加棘手,因为您必须记住到达节点时走的路,而且与DFS相比,空间复杂性的缺点更加严重。
编辑:哦,我是在谈论测试图形的周期,而不是实际找到周期。使用DFS查找周期几乎是微不足道的,而使用BFS查找周期在实际算法复杂度和代码复杂度方面都更为复杂。这就是为什么您找不到伪代码的原因。