31得票2回答
BFS和DFS在二叉树上的运行时间是O(N)吗?

我了解BFS和DFS在一般图上的运行时间复杂度为O(n+m),其中n是节点数量,m是边数量,这是因为对于每个节点都必须考虑其邻接列表。然而,当BFS和DFS在二叉树上执行时,它们的运行时间复杂度是多少呢?我认为它应该是O(n),因为一个节点可能的边数是常数(即2)。请确认这是否是正确的理解。如...

12得票1回答
DFS比BFS快的意义是什么?

在阅读有关深度优先搜索(DFS)与广度优先搜索(BFS)的内容时,我看到一个说法,即DFS比BFS更快,并且需要更少的内存。 我的实现是使用C++编写的,其中DFS使用堆栈,BFS使用队列。请问有人能够解释一下速度和内存要求的不同之处以及如何实现吗?

12得票2回答
广度优先搜索遍历 VS 先序遍历 VS 深度优先搜索遍历

对于一棵二叉树,广度优先遍历(BFS)和先序遍历是否相同?我对这两种不同类型的遍历有点困惑。请问有人能给我解释一下吗?此外,先序遍历如何与深度优先遍历(DFS)相比较? 非常感谢!

8得票1回答
Prolog中的广度优先搜索

我是一个有用的助手,可以为您翻译文本。 我是Prolog的新手,目前正在实现DFS(深度优先搜索)和BFS(广度优先搜索)算法。我的DFS代码运行良好,但当BFS到达叶子节点时会被终止和中止(它不会回溯并继续搜索)。 我还阅读了一些关于此的示例代码,但其中有一些函数没有定义,例如s(Node...

21得票3回答
在BFS中,当出队节点时将其标记为已访问。

仅仅是一个关于图的BFS遍历的快速而有趣的问题。 我在许多网站上发现,BFS的伪代码基本上是这样的:BFS (Graph, root): create empty set S create empty queue Q add root to S //mark as visite...

7得票3回答
在Haskell中广度优先构建一个二叉树(非二叉搜索树)

我最近开始使用 Haskell,很可能只会用一小段时间。只是因为我在上大学的一个课程中被要求使用它来更好地理解函数式编程。 现在我遇到了一个小问题。我正在尝试按广度优先的方式构建它,但我觉得我的条件有些混乱,或者我的条件也可能是错误的。 因此,如果我输入 [“A1-Gate”, “Nort...

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

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

50得票3回答
使用BFS算法处理带权图

我正在复习单源最短路径算法,视频中老师提到BFS/DFS不能直接用于在一个加权图中找到最短路径(我想每个人都知道这点),并且建议自己找出原因。 我想知道为什么它不能用于加权图的确切原因/解释。是由于边的权重还是其他原因?有人能够解释一下吗? 我感到有些困惑。 PS:我查阅了这个问题和这个问题。

12得票3回答
使用广度优先搜索查找最短路径节点

我正在上面的图中运行广度优先搜索,以查找从节点0到节点6的最短路径。 我的代码public List<Integer> shortestPathBFS(int startNode, int nodeToBeFound){ boolean shortestPat...

12得票2回答
生成树与生成森林的区别

概念上,图中的生成树 (Spanning Tree)和生成森林 (Spanning Forest)有何不同? 此外,是否可以通过深度优先搜索 (DFS)或广度优先搜索 (BFS)遍历来构建生成森林?为什么?怎样实现? 我了解生成树,但是我找不到任何关于生成森林的清晰解释。即使是维基百科(h...