- 5
- 0
- 约小于1千字
- 约 6页
- 2023-10-12 发布于湖北
- 举报
1.实验要求
【实验目的】
进一步掌握指针、模板类、异常处理的使用
掌握栈的操作的实现方法
掌握队列的操作的实现方法
学习使用栈解决实际问题的能力
学习使用队列解决实际问题的能力
【实验内容】
利用栈结构实现八皇后问题。
八皇后问题19世纪著名的数学家高斯于1850年提出的。他的问题是:在8*8的棋盘上放置8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列、同一斜线上。请设计算法打印所有可能的摆放方法。
提示:
1、可以使用递归或非递归两种方法实现
2、实现一个关键算法:判断任意两个皇后是否在同一行、同一列和同一斜线上
2. 程序分析
2.1 存储结构
存储结构:栈(递归)
2.2 关键算法分析
【设计思想】
由于八皇后问题,可以分解成算法相同的子问题,所以使用递归的方法
【伪代码】
输入皇后个数n
k=1
判断k是否大于n
3.1 是:打印一组可能
3.2 否:循环行位置1~n
判断该位置是否符合要求,若符合记录q[k]的坐标y值
k+1 重复3
【关键算法】
1、递归
void Queen::Queens(int k,int n)
{ int i;
if(kn)
{ Print(n);
count();
}
else
{
for(i=1;i=n;i++)
if(Isavailab
原创力文档

文档评论(0)