6、(int t) 2.{ 3. if (t>n) 4. output(x)。 //已到叶子结点,输出结果 5. else 6. for (int i=f(n,t)。i<=g(n,t)。i++) { 7. x[t]=h(i)。 8. if (constraint(t)&&bound(t)) 9. backtrack(t+1)。 10. } 11.} f(n,t),g(n,t):表示当前扩展结点处未搜索过的子树的起始编号和终止编号。 h(i):表示在当前扩展结点处x
7、[t]的第i个可选值。 迭代回溯:14/14 采用树的非递归深度优先遍历算法,可将回溯法表示为一个非递归迭代过程。[cpp] viewplain copy1.void iterativeBacktrack () 2.{ 3. int t=1。 4. while (t>0) { 5. if (f(n,t)<=g(n,t)) 6. for (int i=f(n,t)。i<=g(n,t)。i++) { 7. x