算法:输出树作为子图与DFS和BFS的区别



我是一名本科生,正在阅读《科曼简介》。到Algorithms 3rd Ed,准备期末考试。

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

我的想法:

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

如果是这样的话,为什么DFS可以从中产生一个森林,而BFS只产生一棵树?

提前感谢!

查看第603页的下划线注释,该注释以"广度优先搜索仅限于一个源,而深度优先搜索可能从多个源搜索,这似乎是任意的…"

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

PS。当然,这不是概念上的差异,而只是作者的选择,原因在下划线注释中解释。

最新更新