Removed-数据结构实验2——栈和队列实验报告37.pdf
《Removed-数据结构实验2——栈和队列实验报告37.pdf》由会员分享,可在线阅读,更多相关《Removed-数据结构实验2——栈和队列实验报告37.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构实验报告实验名称:实验 2栈和队列1 实验目的实验目的通过选择下面五个题目之一进行实现,掌握如下内容:进一步掌握指针、模板类、异常处理的使用掌握栈的操作的实现方法掌握队列的操作的实现方法学习使用栈解决实际问题的能力学习使用队列解决实际问题的能力2 实验内容 利用栈结构实现八皇后问题。八皇后问题 19 世纪著名的数学家高斯于 1850 年提出的。他的问题是:在 8*8的棋盘上放置 8 个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列、同一斜线上。请设计算法打印所有可能的摆放方法。提示:1、可以使用递归或非递归两种方法实现2、实现一个关键算法:判断任意两个皇后是否在同一行、
2、同一列和同一斜线上2.程序分析主程序:#include using namespace std;const int StackSize=8;/皇后的个数int num=0;template class SeqStack/定义顺序栈模板类 public:SeqStack()top=-1;/构造函数,初始化空栈14“”“”“”“”“”“”“”2324030012015024264352009“”200932820302130“”“”“”2008“”7484845l00081700230012_3 _ _4202010“”“”41“”_2“”“”1“”23412 void Push(T x);/入栈
3、操作 void Pop();/出栈操作 void PlaceQueen(int row);/放置皇后 bool Judgement();/判断是否符合条件 void Print();/输出符合条件的皇后排列 bool Empty()if(top=-1)return true;else return false;/判断栈是否为空 private:T dataStackSize;/定义数组 int top;/栈顶指针;template void SeqStack:Push(T x)/入栈操作 if(top=StackSize-1)throw 上溢;top+;/栈顶指针上移 datatop=x;te
4、mplate void SeqStack:Pop()/出栈操作 if(Empty()throw 下溢;top-;/栈顶指针下移template bool SeqStack:Judgement()/判断该位置是否合适 for(int i=0;itop;i+)14“”“”“”“”“”“”“”2324030012015024264352009“”200932820302130“”“”“”2008“”7484845l00081700230012_3 _ _4202010“”“”41“”_2“”“”1“”23412 if(datatop=datai|(abs(datatop-datai)=(top-i)
5、/判断是否满足任意两个皇后不在同列同一斜线 return false;return true;template void SeqStack:PlaceQueen(int row)/放置皇后 for(int i=0;iStackSize;i+)Push(i);/入栈if(Judgement()/判断位置是否合适if(rowStackSize-1)PlaceQueen(row+1);/如果合适满足条件则放置一个皇后,递归调用else num+;/不满足条件则到下一行 Print();/输出符合条件的皇后 Pop();/出栈template void SeqStack:Print()/输出皇后函数c
6、outNO.num:endl;for(int i=0;iStackSize;i+)for(int j=0;jdatai;j+)cout;14“”“”“”“”“”“”“”2324030012015024264352009“”200932820302130“”“”“”2008“”7484845l00081700230012_3 _ _4202010“”“”41“”_2“”“”1“”23412 coutdatai;j-)cout;coutendl;coutendl;void main()SeqStack Queen;Queen.PlaceQueen(0);cout总共有num种摆放方法。endl;2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Removed 数据结构 实验 队列 报告 37
限制150内