gpt4 book ai didi

c++ - 如何仅使用邻接表在无向图中找到存在的循环(顶点也没有)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:45 24 4
gpt4 key购买 nike

如果你只有一个邻接矩阵,你如何找到无向图中循环出现的位置?

最佳答案

要在无向图中查找循环,您需要对该图运行深度优先搜索 (DFS)。如果您的图形表示为邻接矩阵,则其运行时间为 Θ(V+E),其中 V 是顶点数,E 是边数。在运行 DFS 时,您需要将遍历的每条边分类为树边后边。顶点 u 和 v 之间的边表示为 (u, v),如果在处理 (u, v) 之前没有看到 v,则它是树边。如果在处理 (u, v) 之前已经发现 v,则 (u, v) 是后沿。后边的发现表明图中存在循环,因为存在从一条边离开顶点并从另一条边返回到同一顶点的路径。对所有边进行分类后,任何后边 (u, v) 与形成从 u 到 v 的路径的树边形成一个循环。

关于c++ - 如何仅使用邻接表在无向图中找到存在的循环(顶点也没有)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57010422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com