我是读科尔曼简介的本科生。到算法第三版并为决赛做准备。
在第22章(第603页)中,它讨论了DFS如何将前驱子图生成为林以及BFS如何将前驱子图生成为树。我只是不明白。
我的想法:
如果可以从源顶点s到达顶点v,在该顶点上开始搜索,顶点v是否会有一些前驱(可能是不同的,但是存在),而不管DFS或BFS是否在输入图上运行?也就是说,DFS和BFS都可以访问它。
如果是这样,为什么DFS可以生成森林,而BFS只生成一棵树?
提前致谢!
答案 0 :(得分:3)
检查第603页的下划线注释,该注释以“广度优先搜索仅限于一个来源可能看似随意,而深度优先搜索可能从多个来源搜索......”
源的数量是一个树(单根/源)而另一个是森林(多个根/源)的原因。
PS。当然,这不是一些概念上的差异,而只是作者做出的选择,原因在下划线说明中有所解释。