在上一篇博客(http://www.cnblogs.com/lixing-nlp/p/7641460.html)中,介绍了三个关于回溯算法的例子
这一篇博客要写 回溯算法的设计思想和适用条件。
2.回溯算法的基本思想
什么是系统的方法? 就是我们常用的 深度优先、宽度优先 或者其他的系统的方法,这个方法一定要保证所有的节点都被看到,不一定完全访问到,因为在裁剪的过程中,有的节点被裁剪了,没有完全访问到,但是,被裁剪的部分是保证没有解的,我们已经看过了(不是访问过了)。
3.宽度与深度优先搜索
4.继续讨论回溯算法的基本思想:
5.节点的状态
6. 回溯算法的适用条件
多米洛性质: 前 k+1 个向量满足约束条件,那么 ,前 k 个向量必然满足约束条件。
7. 一个反例:
8. 最后小结:
存储数据结构,一般用 链表就可以做到