469得票15回答
选择深度优先搜索(DFS)和广度优先搜索(BFS)之间需要考虑哪些实际因素?

我了解DFS和BFS之间的差异,但我想知道在选择DFS vs BFS时需要考虑哪些因素。 比如避免在非常深的树上使用DFS等。

215得票24回答
递归地执行广度优先搜索

假设你想要递归地实现对二叉树进行广度优先搜索。你应该如何操作? 是否有可能只使用调用栈作为辅助存储?

213得票4回答
广度优先与深度优先搜索

遍历树/图时,广度优先和深度优先的区别是什么?提供任何编码或伪代码示例都可以。

194得票9回答
为什么深度优先搜索和广度优先搜索的时间复杂度都是 O(V+E)?

BFS的基本算法:set start vertex to visited load it into queue while queue not empty for each edge incident to vertex if its not visited ...

176得票9回答
当寻找最短路径时,广度优先搜索如何工作?

我进行了一些研究,但好像还少了这个算法中的一个小部分。我了解广度优先搜索是如何工作的,但不明白它确切地如何帮我找到一条特定的路径,而不仅仅告诉我每个节点可以去哪里。我想最容易说明我的困惑的方法是提供一个例子: 例如,假设我有一个如下所示的图形: 我的目标是从A到E(所有边都没有权重)。 我从...

156得票7回答
如何在广度优先搜索中追踪路径?

如何追踪广度优先搜索的路径,例如在以下示例中: 如果搜索关键字为11,则返回连接1到11的最短列表。 [1, 4, 7, 11]

155得票7回答
如果广度优先搜索(BFS)可以更快地完成相同的任务,为什么要使用Dijkstra算法?

这两种算法都可以用于查找从单个源节点到其他节点的最短路径。BFS 的时间复杂度为 O(E+V),而 Dijkstra 的时间复杂度为 O((V+E)*log(V))。 此外,我经常看到在路由协议中使用 Dijkstra 算法。 那么,如果 BFS 可以更快地完成相同的任务,为什么要使用 Dij...

114得票11回答
为什么在寻找图中的循环时使用DFS而不是BFS?

主要情况下,DFS 用于在图中查找循环,而不是 BFS。有什么原因呢?两者都可以在遍历树/图时查找节点是否已经被访问。

109得票8回答
广度优先搜索时间复杂度分析

遍历每个顶点相邻的边所需的时间复杂度是,假设为O(N),其中N是相邻边的数量。因此,对于V个顶点,时间复杂度变为O(V*N)=O(E),其中E是图中的总边数。由于将一个顶点从队列中添加或删除的时间复杂度为O(1),为什么要将其添加到BFS的总时间复杂度中,即O(V+E)?

90得票11回答
查找两个图节点之间的所有路径

我正在实现Dijkstra算法,以检索路由网络上互连节点之间的最短路径。我已经成功实现了算法。当我将起始节点传递到算法中时,它返回所有节点的最短路径。 我的问题是: 如何从节点A检索到节点G的所有可能路径,或者甚至是从节点A返回到节点A的所有可能路径?