标签: breadth-first-search

广度优先搜索和迭代深化之间的区别

我理解BFS和DFS,但对于我的生活无法弄清迭代加深和BFS之间的区别.显然迭代加深与DFS具有相同的内存使用率,但我无法看到这是如何可能的,因为它只是像BFS一样不断扩展.如果有人能澄清那将是非常棒的.

如果需要,可以使用树:

    A
   / \
  B   C
 /   / \
D   E   F
Run Code Online (Sandbox Code Playgroud)

search breadth-first-search depth-first-search iterative-deepening

23
推荐指数
3
解决办法
3万
查看次数

为什么深度优先搜索声称空间效率高?

在我正在考虑的算法课程中,据说深度优先搜索(DFS)比广度优先搜索(BFS)更具空间效率.

这是为什么?

虽然它们基本上都在做同样的事情,但在DFS中我们正在堆叠当前节点的后继者,而在BFS中我们将后续队列入队.

algorithm breadth-first-search depth-first-search graph-algorithm

21
推荐指数
2
解决办法
1万
查看次数

使用BFS加权图

我正在修改单源最短路径算法,在视频中,老师提到BFS/DFS不能直接用于在加权图中找到最短路径(我想每个人都已经知道了),并说明了解决原因的原因.你自己.

我想知道为什么它不能用于加权图的确切原因/解释.是由于边缘的重量还是其他因素?有人可以解释我,因为我感到有点困惑.

PS:我经历了这个问题和这个问题.

algorithm graph breadth-first-search shortest-path

21
推荐指数
2
解决办法
3万
查看次数

广度优先搜索和级别顺序遍历有什么区别?

我不需要代码,只需要解释.我的教科书说

级别顺序:级别i的每个节点在级别i + 1的任何节点之前被处理

我对广度优先搜索的理解是你从左边开始首先探索离根最近的节点?这有什么不同?这是一个方形和矩形的情况吗?

algorithm graph-theory breadth-first-search binary-search-tree

19
推荐指数
1
解决办法
1万
查看次数

从顶部开始,您将如何逐级打印出二叉树中的数据?

这是一个面试问题

我想到了一个解决方案.它使用队列.

public Void BFS()    
{   
   Queue q = new Queue();    
   q.Enqueue(root);    
   Console.WriteLine(root.Value);  

   while (q.count > 0)  
   {  
      Node n = q.DeQueue();  
      if (n.left !=null)  
       {  
          Console.Writeln(n.left);  
          q.EnQueue(n.left);  
        }   
       if (n.right !=null)  
       {  
          Console.Writeln(n.right);  
          q.EnQueue(n.right);  
        }   
    }
}    
Run Code Online (Sandbox Code Playgroud)

有什么想法比这更好的解决方案,它不使用Queue?

algorithm binary-tree breadth-first-search

17
推荐指数
4
解决办法
6万
查看次数

如何在这种类型的迷宫中寻找最短路径

红色

Red Dot - Represents the initial location
Black Dot - Already occupied
Green - Free to occupy
Destination - Boundry of the matrix [which means either x = 0 or y = 0 or x = 8 or y = 8]
Run Code Online (Sandbox Code Playgroud)

例如. 例:

red dot可以一次只放置一个动作,并且可以移动到连接到它的绿色六个圆圈中的一个.计算这种迷宫中最短路径的最快方法是什么.

algorithm path breadth-first-search shortest-path shortest

16
推荐指数
1
解决办法
930
查看次数

有效地找到大图中的最短路径

我正在寻找一种方法来实时找到巨大图形中节点之间的最短路径.它有数十万个顶点和数百万个边.我知道之前已经问过这个问题,我想答案是使用广度优先搜索,但我更感兴趣的是知道可以用什么软件来实现它.例如,如果已经存在用于在无向图中执行bfs的库(使用python绑定!),那将是完全完美的.

python graph dijkstra breadth-first-search shortest-path

15
推荐指数
2
解决办法
2万
查看次数

如何使用广度优先搜索获得2个节点之间的路径?

我试图在图形中的两个节点之间找到路径,其中边缘未加权.

我正在使用广度优先搜索,它在找到目标时停止,以便找到路径的存在,但我不确定如何获取路径本身.

我试着查看访问过的节点列表,但这似乎没有帮助.我看到有人用prolog回答这个问题,但我是一名C++程序员.

我也看了一下Dijkstras algorithm,但这似乎过度杀人,因为简单的广度优先搜索让我几乎全程.

如何使用广度优先搜索获得2个节点之间的路径?

search graph path breadth-first-search

14
推荐指数
1
解决办法
1万
查看次数

如何实现广度优先搜索到一定深度?

我理解并且可以轻松实现BFS.

我的问题是,我们怎样才能将这个BFS限制在一定深度?假设,我只需要深入10级.

java algorithm search breadth-first-search depth-first-search

14
推荐指数
2
解决办法
2万
查看次数

14
推荐指数
2
解决办法
1万
查看次数