Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 使用BFS检查循环图_Algorithm_Graph Theory_Breadth First Search - Fatal编程技术网

Algorithm 使用BFS检查循环图

Algorithm 使用BFS检查循环图,algorithm,graph-theory,breadth-first-search,Algorithm,Graph Theory,Breadth First Search,假设我们使用广度优先搜索(BFS)在图G上构造一棵树,并确定图中没有连接属于BFS树中同一层的节点的边。这是否意味着图表没有循环 不,没有。考虑下面的有向图: 如果我们从节点1开始BFS,搜索将在节点3结束。每个顶点都位于单独的层中,因此图形中没有连接属于同一层的节点的边。但是,该图包含一个循环 我们还可以为无向图构造一个反例: 第一层包含节点1。第二层包含节点2和4。第三层包含节点3。唯一具有多个节点的层是第二层,其两个节点不通过边连接。同样,在同一层的节点之间,图中没有边,但图中包含一个

假设我们使用广度优先搜索(BFS)在图
G
上构造一棵树,并确定图中没有连接属于BFS树中同一层的节点的边。这是否意味着图表没有循环

不,没有。考虑下面的有向图:

如果我们从节点1开始BFS,搜索将在节点3结束。每个顶点都位于单独的层中,因此图形中没有连接属于同一层的节点的边。但是,该图包含一个循环

我们还可以为无向图构造一个反例:


第一层包含节点1。第二层包含节点2和4。第三层包含节点3。唯一具有多个节点的层是第二层,其两个节点不通过边连接。同样,在同一层的节点之间,图中没有边,但图中包含一个循环。

这是DAG还是无向?一个有用的链接:谢谢Micheal Laszlo的回答