前几天看数据结构,觉得如果将深度优先搜索放在树中去理解的话容易多了,然后我想到之前看的八皇后问题,八皇后问题是深搜的一个典型应用,于是我又看了一遍吴文虎的书上八皇后问题的例程,他将Try(int i)这个函数的意义说成是放置第i个皇后,我觉得这个说法不准确。按照他的说法,如果说放置完第i个皇后后依然不到8个,那么就放置第i+1个皇后,然后又把刚才放置的皇后拿起,接着尝试这个皇后的下一种可能,怎么想也想不通为什么要这么做这明显有违深搜的意思。于是我相出了另一种解释这个程序的方法,就是将Try(i)解释为放置第i个及其后面所有皇后,这样Try(i)即可获得如下递归定义:第一步,将第i个皇后放好;第二步,将第i+1个皇后及其后面的皇后放好,也就是Try(i+1)。

