数据结构课程设计参考答案c组

数据结构课程设计参考答案c组

ID:14949061

大小:163.00 KB

页数:61页

时间:2018-07-31

数据结构课程设计参考答案c组_第1页
数据结构课程设计参考答案c组_第2页
数据结构课程设计参考答案c组_第3页
数据结构课程设计参考答案c组_第4页
数据结构课程设计参考答案c组_第5页
资源描述:

《数据结构课程设计参考答案c组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、/*马的遍历及其复杂性分析*/#include#defineMAX16intstep=0,count=0;/*chess[MAX][MAX]用来表示棋盘;step是步骤数;count是运算次数;chess[i][j]==-1表示该单元格非当前棋盘的有效位置;chess[i][j]==0表示该单元格尚未经过马的遍历;chess[i][j]>=1表示马遍历时经过该单元格时的步骤;*//*nextStepNum()函数用来计算(x,y)处可以跳的方向数*/intnextStepNum(intchess[][MAX],i

2、ntx,inty){intsum=0;if(chess[x-1][y-2]==0)sum++;if(chess[x-2][y+1]==0)sum++;if(chess[x+2][y+1]==0)sum++;if(chess[x+2][y-1]==0)sum++;if(chess[x-2][y-1]==0)sum++;if(chess[x-1][y+2]==0)sum++;if(chess[x+1][y-2]==0)sum++;if(chess[x+1][y+2]==0)sum++;return(sum);/*每找到一个位置sum+

3、+,最后返回sum值就是在(x,y)处可走的位置数*/}/*jump函数测试第step步为(x,y)位置的情况下,是否可以走完棋盘,如果可以返回1,否则返回0*/intjump(intchess[][MAX],introwNum,intcolNum,intx,inty){ints[9],a[9];intmin,i,j,k;count++;step++;chess[x][y]=step;/*如果已经走到了rowNum×colNum的话,表示满足结束条件,返回1*/if(step==rowNum*colNum)return1;/*计算

4、(x,y)处下一步的八个位置上,每个位置上可以继续进行跳跃的方向数*/s[1]=nextStepNum(chess,x-2,y+1);s[2]=nextStepNum(chess,x-1,y+2);s[3]=nextStepNum(chess,x+1,y+2);s[4]=nextStepNum(chess,x+2,y+1);s[5]=nextStepNum(chess,x+2,y-1);s[6]=nextStepNum(chess,x+1,y-2);s[7]=nextStepNum(chess,x-1,y-2);s[8]=next

5、StepNum(chess,x-2,y-1);/*对下一步的八个位置上可以继续进行跳跃的方向数从小到大排序*///s数组的下标即为方向编号,a数组中存储的即为各个方向编号for(j=1;j<=8;j++){min=9;a[j]=1;for(i=1;i<=8;i++)if(s[i]

6、){switch(a[i]){case1://方向1可以跳跃,并且跳通了,则返回1,表示后面的方向不同再看;//方向1不可跳跃,或者没有跳通,则直接break,执行下一次循环测试下一个方向。if(chess[x-2][y+1]==0&&jump(chess,rowNum,colNum,x-2,y+1)==1)return1;break;case2:if(chess[x-1][y+2]==0&&jump(chess,rowNum,colNum,x-1,y+2)==1)return1;break;case3:if(chess[x+1]

7、[y+2]==0&&jump(chess,rowNum,colNum,x+1,y+2)==1)return1;break;case4:if(chess[x+2][y+1]==0&&jump(chess,rowNum,colNum,x+2,y+1)==1)return1;break;case5:if(chess[x+2][y-1]==0&&jump(chess,rowNum,colNum,x+2,y-1)==1)return1;break;case6:if(chess[x+1][y-2]==0&&jump(chess,rowNum,

8、colNum,x+1,y-2)==1)return1;break;case7:if(chess[x-1][y-2]==0&&jump(chess,rowNum,colNum,x-1,y-2)==1)return1;break;case8:if(ch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。