回溯问题简答总结与8皇后问题的应用

来源:互联网 发布:淘宝手机端购买流量 编辑:程序博客网 时间:2024/06/08 18:25

     回溯法:递归是, 生成和检验过程有机结合起来,若出现冲突,则递归函数不是调用自身,而是返回上一层。

    八皇后问题: 

void search( int cur)  //cur 表示放皇后的行标{int tot; //表示解的个数 if(cur==n) {  tot++; } else  {  for(int i=0;i<n;i++)  {  int ok=1;  c[cur]=i; //尝试将当前行的皇后放到第i列  for(int j=0;j<cur;j++ ) //检查是否和前面的皇后有冲突  {  if(c[j]==c[cur]||cur-c[j]==j-c[j]||cur+c[cur]==j+c[j])//检验纵向和横向的冲突  {    ok=1;break; //不成立  }  else if(ok) search(cur+1); //成立,放下一行的皇后  }  } }}

1 0