Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 修改BFS/DFS以检查简单路径_Algorithm_Graph_Depth First Search - Fatal编程技术网

Algorithm 修改BFS/DFS以检查简单路径

Algorithm 修改BFS/DFS以检查简单路径,algorithm,graph,depth-first-search,Algorithm,Graph,Depth First Search,我必须根据BFS或DFS设计一个算法,以便在给定G=(V,E)有向图的情况下执行以下操作: 检查从s到V中的任何其他顶点u是否最多有一条简单路径。此算法必须位于O(| V |+| E |)上 根据前面的算法,我必须设计另一个O(| V | | E |)算法来检查任意两个顶点u和V之间是否最多有一条简单路径 我希望你能帮助我!提前多谢 提示:如果从s到u的路径上的所有边都是(桥)怎么办?如果它们中的任何一个不是最尖端的呢?:) 注意:我们可以在图O(V+E)时间中找到所有的桥欢迎来到StackOv

我必须根据BFS或DFS设计一个算法,以便在给定G=(V,E)有向图的情况下执行以下操作:

检查从s到V中的任何其他顶点u是否最多有一条简单路径。此算法必须位于O(| V |+| E |)上

根据前面的算法,我必须设计另一个O(| V | | E |)算法来检查任意两个顶点u和V之间是否最多有一条简单路径


我希望你能帮助我!提前多谢

提示:如果从su的路径上的所有边都是(桥)怎么办?如果它们中的任何一个不是最尖端的呢?:)


注意:我们可以在图O(V+E)时间中找到所有的桥

欢迎来到StackOverflow。你尝试了什么?很好的解决方案!我在维基链接上读到了,但是那里描述的线性时间算法,我无法理解。它可以简单地描述一下吗?@Aravind:顺便问一下,如果你喜欢这个解决方案,为什么不投票表决呢?:)这就是为什么另一个人会觉得答案很有趣:)谢谢!谢谢@Muhammedheayet!!这是非常有用的。使用您之前发布的代码,我可以找到所有的桥,但是,我如何确定s到任何顶点之间的路径是否仅由桥组成?@Stratford:一个简单的解决方案如下:首先标记所有桥边。在查找网桥时,您可以找到每个节点的父节点。因此,您可以从u开始,在每一步都跟随父节点到达s。沿着路径,只需检查从a到b的边是否是桥,其中a和b是从u到s的路径上的两个顶点,b是a的父节点。