图的任意两个顶点之间存在循环

时间:2017-11-18 08:38:58

标签: algorithm graph directed-graph

要找到的问题有向图的两个特定顶点之间的路径数量,如果它们之间存在一个循环,那么路径的数量是无限的,所以我知道算法在整个图中找到循环而不是任何两个特定的顶点,所以如果有人解释它对我有帮助。

1 个答案:

答案 0 :(得分:1)

因此,我们可以将这个问题分成两个子部分 如果 U (来源)和 V (目的地)之间有一个循环,那么答案将是无限的。因此,在一个DFS中,我们将从 U 开始,直到我们得到 V 。同样地,从V开始,直到我们得到U.如果我们从两种方式都达到两者,那么期望的答案是无限的。

现在主要部分。从源U运行正常DFS并开始访问每个节点为true,如果遇到目标节点,请将其标记为true,然后从那里继续。 (可以很容易地检测到此过程之间的循环)。