我知道 DFS 适用于某些问题,而 BFS 适用于其他一些问题,但如果某些问题可以使用 DFS 解决,那么它是否可以使用 BFS 解决(可能不太理想)(反之亦然)?有证据吗?谢谢!
最佳答案
没有。
最短路径是可以使用 BFS 轻松解决的问题的典型示例。但是对于 DFS,您要么必须接受无限循环的可能性,要么避免重新访问节点并且在许多情况下无法找到最短路径。
相反的例子更难找到。但例如 Hopcroft-Tarjan用于平面性测试的算法依赖于这样一个事实,即在 DFS 中,您知道到当前节点的整个路径的属性。而你在 BFS 中没有的上下文。
关于algorithm - DFS 和 BFS 可以互换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72682027/