回溯法的本质:1. 在所有可能的情况中前行,具体的前行方式自己定,但前行方式必须确保:a.每前行一步之后当状态不能满足各种条件时,能回溯到最近的满足各种条件的某一步,这里常用的方法有递归,b.所有的情况都能考虑到,c.每一种情况只考虑一次; 2. 每前行一步需要做的事:a.要把这一步的所有情况都枚举考虑,并把这一步的每一种情况的状态修改为前行一步之后应变成的状态;3. 在每前行一步之后:如状态继续满足各种条件(注意这里的继续2字,因为它前一步的状态满足各种条件。也就是说最初的第一步必须从满足各种条件的状态开始前行,这就保证了每前行一步之前的状态都满足各种条件),则继续前行,不满足,则停止。
回溯法经典利用实例:8皇后问题。这里只说明8*8放8个皇后的问题。具体对照上面回溯法的本质来对号入座地分析下面的算法,就不再仔细说了。请大家一步步对照着分析一下。分析之后,相信大家对回溯法能有一个比较深刻的理解。