全文预览

八皇后问题实验报告递归非递归javaC语言+分析

上传者:似水流年 |  格式:doc  |  页数:23 |  大小:186KB

文档介绍
while(true){ if(record[1][i]!=-1){// 判断当前点是否为上次退行的位置,是则进行再定位//清除原来在回溯一行定位的点 9 j=record[1][i]; record[1][i]=-1; flag[i][j]=-1; //把回溯点的值改为-1 if(j<len-1) j++;// 往右移 else{ if(i>0) i--;// 往上移 else {/*System.out.println("iojhipo");*/ // 在此结束回溯 return ;}// 结束}}else{// 当前点为普通点 if(!isTrue(record,i,j)){// 该定位点位置不满足要求 if(j<len-1) j++;// 往右找定位点 else{ if(i>0) i--;// 往上找定位点 else {/*System.out.println("iojhipo");*/return ;}// 结束}}else{// 该定位点位置满足要求//放置定位点 flag[i][j]=1; record[0][i]=i; record[1][i]=j; if(i<len-1){// 往下走 i++; j=0; }//end if else{// 到末尾,找到一条路径 isExist=true; printArray(flag);// 打印 record[1][i]=-1;// 做回溯处理准备 flag[i][j]=-1; i--;// 往上继续搜寻}//end else }}}}(5)定义输出函数 rintArray(int[][] flag) ,代码略(见代码清单)。注明:C语言程序的分析和上述类似,不在赘述。 10 四. 具体实现及运行 4.1 QueenMainl 类的实现: 4.2 QueenNR 类: 实现了 QueenMain 类的非递归按钮功能

收藏

分享

举报
下载此文档