Algorithm 宽度优先搜索能用于有向无环图吗?

Algorithm 宽度优先搜索能用于有向无环图吗?,algorithm,breadth-first-search,Algorithm,Breadth First Search,宽度优先搜索能用于有向无环图吗 例如,您从根节点开始(假设它有3个连接节点,所有边都从根指向它们),在BFS之后,您从根访问第一个连接节点,然后在定向边之后,您必须返回到根节点并访问第二个连接节点(如果它是无向图),但在有向图的情况下不能,所以我假设BFS不能用于有向无环图 同样,像1->2->3->4这样的一行节点可以看作是一个有向无环图,对吗 谢谢1->2->3->4 这是一只狗 BFS意味着快速搜索。如果从节点u启动bfs,则会找到从u可访问的每个节点,但找不到从u无法访问的节点 例G(V

宽度优先搜索能用于有向无环图吗

例如,您从根节点开始(假设它有3个连接节点,所有边都从根指向它们),在BFS之后,您从根访问第一个连接节点,然后在定向边之后,您必须返回到根节点并访问第二个连接节点(如果它是无向图),但在有向图的情况下不能,所以我假设BFS不能用于有向无环图

同样,像
1->2->3->4
这样的一行节点可以看作是一个有向无环图,对吗

谢谢

1->2->3->4 这是一只狗

BFS意味着快速搜索。如果从节点u启动bfs,则会找到从u可访问的每个节点,但找不到从u无法访问的节点

例G(V,E)一个图 v={1,2,3,4} E={(1,2)、(1,3)、(4,1)} 如果从节点1运行bfs,将发现节点2和3 但有4个是未被发现的

但是如果你从4运行bfs,每个节点都会被发现

因此,如果你知道DAG的拓扑排序,你可以按拓扑顺序从节点运行bfs,将发现每个节点,并正确计算其级别。

简短回答:是

  • 这是一本书。(这不是Adv,我不认识那个人)
  • 这是
为了更准确地回答您的问题,如果给定节点没有指向根的边,那么您不必像其他人在评论中所说的那样“必须”返回到根

图是否有循环并不重要,因为在BFS算法中,当您访问某个节点时,应该标记该节点。然后,该标记用于不让节点第二次排队(即只访问它一次),因此该循环是如何中断的。 只需检查一下屏幕

是的,你提到的“节点线”是一个DAG,但非常特殊


很抱歉我问了自己这个问题,搜索了互联网,看到了,继续搜索,找到了一些答案,因此,我认为它可以在将来帮助其他人。

BFS可以通过对访问的节点着色来在任何图形上使用。@alfasin你能解释一下为什么我的假设基于我的解释是错误的吗?因为在BFS中,你将把
root
的所有邻居排队,然后开始弹出它们。没有指向后面的边这一事实是不相关的。BFS用于查找从一个节点到图中任何其他节点的最短路径。这与找到访问每个节点的简单路径无关。第二,DAG中的
root
的定义是什么?只有“外”边的节点?如果这样的节点很少怎么办?@user3466314“可以使用它”到底是什么意思?你想达到什么目标?两个节点之间的最短路径还是。。。?是,BFS可用于查找DAG中两个节点之间的最短路径。否。最好的方法是拓扑排序。