收藏 分享(赏)

数据结构-八皇后.doc

上传人:11xg27ws 文档编号:12250403 上传时间:2021-12-06 格式:DOC 页数:3 大小:45KB
下载 相关 举报
数据结构-八皇后.doc_第1页
第1页 / 共3页
数据结构-八皇后.doc_第2页
第2页 / 共3页
数据结构-八皇后.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、八皇后问题 问题描述在88的国际象棋棋盘上,放置8个皇后,使得这8个棋子不能互相被对方吃掉。 设计思路在第一行先放置好一个皇后,然后在第二行放置第二个皇后,在放置第二个皇后的时候要进行判断,判断第二个皇后是否与第一个皇后同列,是否在同一条斜线上面,放置好第二个皇后跳转至第三行,放置第三个皇后的方法与放置第二个皇后的方法相同,可以使用递归函数,直至放好第八个皇后。 数据结构设计在放置好第一、二个皇后之后,放置后面皇后的时候方法与放置第二个皇后的方法相同,此时使用了递归函数。 功能函数设计void show() /图形化输出棋盘int check(int n) /检测放置的位置是否合法,满足条件返

2、回1,否则返回0void put(int n) /在第n行放置第n 个皇后 程序代码#include#include#include#include#define N 8 /皇后数=棋盘行列数int aN; /ai为第i 行皇后所在列void show() /图形化输出int i;int flag=0,K;int p,q ;int bNN=0;static int t=1;printf(“第%d 个解为: “,t+);for(i=0;iN;i+)biai=1;printf(“(%d,%d) “,i,ai);printf(“n“);if(flag=0)for(p=0;pN;p+)for(q=0;

3、qN;q+)if(bpq=1)printf(“ “);elseprintf(“ “); printf(“n“);flag=1;printf(“按任意数字键显示下一个解: “);scanf(“%d“,int check(int n) /满足条件返回1,否则返回0int i;for(i=0;in;i+)if(ai=an|fabs(n-i)=fabs(ai-an) /判断 return 0;return 1;void put(int n) /在第n行放置第n 个皇后int i;if(n=N)return ;for(i=0;iN;i+)an=i;if(check(n) /位置合法if(n=N-1) /皇后全部放置完毕show();elseput(n+1);int main ()printf(“八皇后问题求解: n“);put(0);return 0; 运行与测试八皇后的输出采用了坐标法和图形法,如下图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报