数据结构与算法分析实验报告.doc
《数据结构与算法分析实验报告.doc》由会员分享,可在线阅读,更多相关《数据结构与算法分析实验报告.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构与算法分析实验报告学院:电信学院班级:计算机06学号:xxx姓名:xxx小组成员:xxx2011年12月20日实验四 八皇后问题1、问题描述 设在初始状态下,在国际象棋的棋盘上没有任何棋子(这里的棋子指皇后棋子)。然后顺序在第1行,第2行第8行上布放棋子。在每一行中共有8个选择的位置,但在任一时刻棋盘的合法布局都必须满足3个限制条件(1)任意两个棋子得放在同一行(2)任意两个棋子不得放在同一列上(3)任意棋子不得放在同一正斜线和反斜线上。2、基本要求 编写求解并输出此问题的一个合法布局的程序。3、实现提示 在第i行布放棋子时,从第1列到第8列逐列考察。当在第i行第j列布放棋子时,需要考
2、察布放棋子后在行方向列方向正斜线和反斜线方向上的布局状态是否合法,若该棋子布放合法,再递归求解在第i+1行布放棋子;若该棋子布放不合法,移去这个棋子,恢复布放该棋子前的状态,然后再试探在第i行第j列布放旗子。解:编写程序如下:#include#define NUM 8 int aNUM+1;int main()int i,k,flag,not_finish=1,count=0;i=1; a1=1; printf(The possible configuration of 8 queens are: n);while(not_finish)while(not_finish&i=NUM) for(
3、flag=1,k=1;flag&ki;k+) if(ak=ai)flag=0;for(k=1;flag&k1&ai=NUM)ai=1; else if(i=1&ai=NUM)not_finish=0; else ai+; else if(ai=NUM) ai=1;else ai+; else if(+i=NUM)if(ai-1=NUM) ai=1;else ai=ai-1+1; if(not_finish)+count;printf(count-1)%3? %2d: : %2d: ,count);for(k=1;k=NUM;k+) printf( %d,ak);if(aNUM-10)个人按顺时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 分析 实验 报告
限制150内