马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 reko3 于 2013-8-26 17:57 编辑
来论坛有一段时间了,学到了很多东西,一直想为论坛做些什么,最近在学小甲鱼数据结构视频,看到第60讲马踏棋盘算法的时候,觉得那个代码写得有点复杂了,联想到之前有一个摆皇后的算法,其实两个问题解的思路基本是差不多的,于是照那个算法的思路重写了下,运行结果跟小甲鱼那个算法一样,但是简单很多,也好理解,我还是初学者,不知道写得对不对,有什么不对的,欢迎指正
int TravelChessBoard(int x,int y,int tag) { int x1,y1; int count=0; x1=x; y1=y; chess[x][y]=tag; if(tag==X*Y) { print(); return 1; } //检查8种不同可能 for(count=0;count<8;count++) { if(nextxy(&x1,&y1,count)) { //找到其中一种,进行下一次递归 if(TravelChessBoard(x1,y1,tag+1)) return 1; } else { continue; } x1=x; y1=y; } //超过8次,回到上1步再继续探索 if(count>=8) { chess[x][y]=0; } return 0; }
|