第一范文网 - 专业文章范例文档资料分享平台

数据结构课程设计报告

来源:用户分享 时间:2025/5/22 23:09:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

数据结构课程设计

开始开始 数据初始化 从第列开始摆放第nn个皇后 从nn列开始摆放第个皇后2 1

当前位置(n,m,) ) N 当前位置(nn,m) Y 当前位置(m 是否被占领 是否被占领是否被占领

n=n+1 n=n+1 摆放皇后,并 摆放皇后,并摆放皇后,并宣布占领宣布占领 宣布占领测试下个位置 m=m+1 0n<=8&m=8 Y N 打印

进行回溯 结果 5

数据结构课程设计

三、 详细设计

//定义数组

int a[8] //表示第i个皇后放置的列,范围为1~8。

int b[8] //表示第j行空闲,b[j]=1 表示第j行被占领,范围为1~8 int c[30] //表示第(i-j)条对角线空闲,c[i-j]=1 表示第(i-j)条对角线被占领,范围-7~7

int d[30] //表示第(i+j)条对角线空闲,d[i+j]=1 表示第(i+j)条对角线被占领,范围2~16。

//位置标明法打印 void print1() { }

//矩阵表示法打印

6

X++;

cout<<\ //每一行皇后放置的列数的第X种情况 for (k=1;k<9;k++)

cout<<\

cout<<\

数据结构课程设计

void print2() { int t,n; Y++;

cout<<\矩阵形式的第Y种情况 for (k=1;k<9;k++)

{

n=a[k]; for(t=1;t

cout<<\

cout<<\ t++; for(t;t<9;t++)

cout<<\

cout<<\ }

cout<<\

}

//回溯递归法摆放皇后

7

数据结构课程设计

void PlaceQueen1(int i) { 突

皇后

int j;

for (j=1;j<9;j++) //每个皇后都有8种可能位置 {

if ((b[j]==0) &&(c[i+j]==0)&& (d[i-j]==0))

//判断位置是否冲

{

a[i]=j; b[j]=1; c[i+j]=1; d[i-j]=1; if (i<8)

PlaceQueen1(i+1); //8个皇后没有摆完,递归摆放下一

//摆放皇后 //宣布占领第J行 //占领两个对角线

else

print1(); //完成任务,打印结果

//回溯

b[j]=0; c[i+j]=0; d[i-j]=0;

8

搜索更多关于: 数据结构课程设计报告 的文档
数据结构课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8olt5337di0fvqu4zj6b_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top