我正在尝试针对 8 Queens 问题改进我当前的算法,这是我第一次真正处理算法设计/算法。我想结合此处描述的不同 Y 值的排列来实现深度优先搜索: http ://en.wikipedia.org/wiki/Eight_queens_puzzle#The_eight_queens_puzzle_as_an_exercise_in_algorithm_design
我已经实现了置换部分来解决问题,但是我在考虑深度优先搜索时遇到了一些麻烦。它被描述为一种遍历树/图的方式,但它会生成树图吗?只有当深度优先搜索生成要遍历的树结构时,这种方法才会更有效,这似乎是唯一的方法,通过实现一些逻辑来只生成树的某些部分。
所以本质上,我必须创建一个算法来生成一个修剪过的字典排列树。我知道如何实现修剪逻辑,但我只是不确定如何将它与排列生成器联系起来,因为我一直在使用 next_permutation。
是否有任何资源可以帮助我了解深度优先搜索的基础知识或以树形式创建字典排列?