31得票8回答
最短路径:DFS、BFS还是两者都用?

我知道在无权图中,BFS单独可以找到最短路径。但是我也在一些网站上读到了一些人声称BFS或DFS都可以做到这一点。我只是想确认这可能是错误的,并且只有BFS可以做到这一点(即使我在快速搜索后仍然不太自信)。如果我错了,请有人解释一下DFS如何能给出最短路径。

15得票3回答
为什么说深度优先搜索容易出现无限循环?

我多次阅读了与DFS和BFS相关的内容,但自始至终心中有一个疑问。很多文章中都提到DFS会陷入无限循环。 据我所知,通过跟踪已访问节点,就可以轻松解决这个限制。事实上,在我阅读的所有书籍中,这个小检查都是DFS的一部分。 那么为什么“无限循环”被提到作为DFS的缺点呢?这只是因为原始的DF...

8得票2回答
运行时错误:将引用绑定到未对齐地址0xbebebebebebebec6上的类型为'int'的变量,该变量要求4字节对齐(stl_vector.h)。

我正在编写代码解决Leetcode上这个问题 对于每个单元格索引(x,y),运行深度优先搜索(dfs) 在每次dfs调用时,检查该单元格是否为目标单元格 相应地设置标志(flags) 如果两个标志都为true, 则将此单元格添加到"ans"向量(vector)中,否则继续下一个dfs c...

13得票1回答
MySQL中的深度优先搜索

我正在尝试编写一个 MySQL PROCEDURE,它将边缘e和边集eset作为输入,并输出布尔值iscyclic以确定额外的边是否形成了环。是否有比创建所有顶点的表格并在运行边集时检查任何顶点是否被访问多次更简单的方法?

12得票2回答
BFS和DFS算法在什么情况下比A*搜索算法更有效?

我已经测试了A*搜索算法与广度优先搜索(BFS)和深度优先搜索(DFS),发现A*搜索算法扩展更少的节点。 我理解A*使用启发式和边缘成本函数扩展已经更便宜的路径。 在哪些情况下,相较于A*搜索算法,BFS和DFS会更加高效呢?

21得票1回答
DFS中的边分类

根据算法导论一书,dfs中的边被分类为四种类型: 树边(Tree Edge),如果在边(u,v)中,v首次被发现,则(u, v)是一条树边。 后向边(Back Edge),如果在边(u,v)中,v已经被发现且v是u的祖先,则它是一条后向边。 前向边(Forward Edge),如果在边(u...

12得票1回答
BFS和DFS的目的是什么?

我学会了这些算法的工作原理,但它们用于什么呢? 我们使用它们来: 在图中找到特定节点或 查找最短路径或 在图中找到循环 吗? 它们都只是访问所有节点并标记它们已被访问,我不明白这样做的意义所在。 我有点迷失在我正在学习的东西中。

8得票3回答
BFS和DFS搜索在树中需要标记为已访问吗?

看到BFS和DFS算法,它们似乎会将节点标记为已访问。如果我只遍历树,那么我的实现是否仍需要标记节点为已访问?我想对每个节点执行某些操作,确保每个节点只执行一次。 看起来只有在存在循环的图形中才需要这样做,否则可能会重复遇到相同的节点。如果我递归地调用树,那么没有必要设置访问状态,因为我可以...

37得票13回答
如何使用非递归方法实现图的深度优先搜索

我花费了很多时间在这个问题上。然而,我只能找到非递归方法处理树的解决方案:树的非递归方式,或者递归方法来处理图:图的递归方式。 而许多教程(我不提供链接)也没有提供相应的方法,或者教程完全是错误的。请帮帮我。 更新: 很难描述: 如果我有一个无向图: 1 / | \ 4 | 2 ...

17得票3回答
仅使用JavaScript进行DOM树遍历 - DFS和BFS?

有人能提供在纯JavaScript中实现DFS(深度优先搜索)和BFS(广度优先搜索)的代码、伪代码,或者好的链接吗?(不要使用JQuery或任何帮助库)我一直试图理解如何实现遍历,但我似乎无法真正区分BFS和DFS实现的差异。 如果我们需要一个具体的问题作为例子:我想遍历给定节点的DOM并获...