回溯法解决八皇后问题---用Java语言
来源:互联网 发布:it测试工程师很苦吗 编辑:程序博客网 时间:2024/05/06 22:49
import java.lang.*;
import java.util.*;
class Queen {
private int x;
private int y;
public void setX(int x){
this.x=x;
}
public int getX(){
return x;
}
public void setY(int y){
this.y=y;
}
public int getY(){
return y;
}
}
public class EightQueen {
private static List<Queen> qlist = new ArrayList<Queen>();
private static List<Queen> finlist=new ArrayList<Queen>();
private static int qsize=8;
public static void main(String[] args){
long start = System.nanoTime();
backTrack(1,1);
System.out.println("take time = "+(System.nanoTime()-start));
int n=0;
for(int i=0;i<finlist.size();i++){
if(i%qsize==0){
System.out.print((++n)+":");
}
Queen q=(Queen)finlist.get(i);
System.out.print(q.getX()+","+q.getY()+" ");
if((i+1)%qsize==0)
System.out.println();
}
}
public static boolean backTrack(int i,int j){/* 回溯法解决八皇后问题*/
for(;j<=qsize;j++){
boolean good=true;
Iterator<Queen> it= qlist.iterator();
while(it.hasNext()){
Queen q = (Queen)it.next();
int x=q.getX();
int y=q.getY();
if(i==x){
good=false;
break;
}
if(j==y){
good=false;
break;
}
if((j-y)==(i-x)||(j-y)==(x-i)){
good=false;
break;
}
}
if(good == true){
Queen queen = new Queen();
queen.setX(i);
queen.setY(j);
qlist.add(queen);
if(i==qsize){
Iterator<Queen> its=qlist.iterator();
while(its.hasNext()){
finlist.add((Queen)its.next());
}
qlist.remove(queen);//用remove(i-1)应该也行
qlist.remove(i-2);
return true;
}
backTrack(i+1,1);
}
}
if(i!=1){
qlist.remove(i-2);
}
return false;
}
}
- 回溯法解决八皇后问题---用Java语言
- 用回溯法解决八皇后问题(Java实现)
- C语言用回溯解决八皇后问题
- 回溯法解决八皇后问题(java实现)
- 回溯法解决八皇后问题(java实现)
- 回溯法解决“八皇后”问题
- 回溯法解决八皇后问题
- 回溯法解决八皇后问题
- 回溯法解决八皇后问题
- 回溯法解决八皇后问题
- scala 回溯法解决八皇后问题
- 回溯法解决八皇后问题
- 回溯法解决八皇后问题
- 八皇后问题-回溯法-c语言
- 用回溯法解决八皇后问题的C语言程序
- 用回溯法求解八皇后问题
- 八皇后问题 回溯法
- 八皇后问题 回溯法
- Android系统应用程序基本概念解读
- Javascript 中三元运算符的用法
- C++存储tga图片
- 内存越界引起的bug汇总
- 封装 HttpURLConnection
- 回溯法解决八皇后问题---用Java语言
- 一些简单的Linux网络配置命令
- Eclipse配置NDK_R4开发环境(集成Cygwin 、CDT)
- WiFi、WinMax、无线上网卡、无线路由器、无线AP之间区别 收藏
- MMI Code
- Android模拟器无法上网解决方案
- javascript代码检查工具
- ASP.NET Page加载的顺序
- POJ1251 Jungle Roads Prim算法