算法:输出树的差异作为DFS和BFS的子图

时间:2013-12-15 01:11:29

标签: algorithm search depth-first-search breadth-first-search

我是读科尔曼简介的本科生。到算法第三版并为决赛做准备。

在第22章(第603页)中,它讨论了DFS如何将前驱子图生成为林以及BFS如何将前驱子图生成为树。我只是不明白。

我的想法:

如果可以从源顶点s到达顶点v,在该顶点上开始搜索,顶点v是否会有一些前驱(可能是不同的,但是存在),而不管DFS或BFS是否在输入图上运行?也就是说,DFS和BFS都可以访问它。

如果是这样,为什么DFS可以生成森林,而BFS只生成一棵树?

提前致谢!

1 个答案:

答案 0 :(得分:3)

检查第603页的下划线注释,该注释以“广度优先搜索仅限于一个来源可能看似随意,而深度优先搜索可能从多个来源搜索......”

源的数量是一个树(单根/源)而另一个是森林(多个根/源)的原因。

PS。当然,这不是一些概念上的差异,而只是作者做出的选择,原因在下划线说明中有所解释。