我对DFS和Backtracking算法的区别感到困惑。 在我看来,Backtracking只是一个特殊版本的DFS,是不是?
答案 0 :(得分:1)
回溯算法以递归方式从根向下遍历搜索树,以深度优先顺序。在每个节点c,算法检查c是否可以完成有效解决方案。 如果不能,则跳过以c为根的整个子树(修剪)。否则,算法检查c本身是否是有效的解决方案,如果是,则向用户报告;并递归枚举c的所有子树。两个测试和每个节点的子节点由用户给定的过程定义。
深度优先搜索(DFS)从根开始(在图表的情况下选择一些任意节点作为根)并且尽可能地探索在回溯之前的每个分支。