- 2
- 0
- 约1.53万字
- 约 82页
- 2017-06-07 发布于湖北
- 举报
数据结构中的栈与队列剖析
* void Queen(int i) { for (int j = 0; j n; j++) { if (第 i 行第 j 列没有攻击) { 在第 i 行第 j 列安放皇后; if (i == n-1) 输出一个布局; else Queen(i+1); 撤消第 i 行第 j 列的皇后; } } } * 算法求精 void Queen(int i) { for (int j = 0; j n; j++) { if (!col[j] !md[n+i-j-1] !sd[i+j]) { /*第 i 行第 j 列没有攻击 */ col[j] = md[n+i-j-1] = sd[i+j] = 1; q[i] = j; /*在第 i 行第 j 列安放皇后*/ * if (i == n-1) { /*输出一个布局*/ for (int k = 0; k n; k++) cout k q[k] ‘,’; cout endl; } else Queen(i+1); col[j] = md[n+i-j-1] = sd[i+j] = 0; q[i] = 0; /*撤消第 i 行第 j 列的皇后*/ } } } * 迷宫问题 小型迷宫 路口 动作 结果 1 (入口) 正向走 进到 2 2 左拐弯 进到 3 3 右拐弯 进到 4 4 (堵死) 回溯 退到 3 3 (堵死) 回溯 退到 2 2 正向走 进到 5 5 (堵死) 回溯 退到 2 2 右拐弯 进到 6 6 左拐弯 进到 7 (出口) 4 3 5 2 1 7 6 6 左 0 直 2 右 0 行 3 行 5 行 6 0 0 4 0 0 0 0 0 0 7 0 0 7 小型迷宫的数据 * 迷宫的类定义 #include iostream.h #include fstream.h #include stdlib.h class Maze { private: int MazeSize; int EXIT; Intersection *intsec; public: Maze(char *filename); int TraverseMaze(int CurrentPos); } 交通路口结构定义 struct Intersection { int left; int forward; int right; } * Maze :: Maze(char *filename) {//构造函数:从文件 filename 中读取各路口//和出口的数据 ifstream fin; fin.open(filename, ios::in | ios::nocreate); //为输入打开文件,文件不存在则打开失败 if (!fin) { cerr “迷宫数据文件” filename “打不开” endl; exit(1); } fin MazeSize; //输入迷宫路口数 * intsec = new Intersection[MazeSize+1]; //创建迷宫路口数组 for (int i = 1; i = MazeSize; i++)
您可能关注的文档
最近下载
- 2025《麻江县蓝莓产业发展现状调研分析报告》4900字.docx
- 2026年国网安全管理方案.docx VIP
- 2025年北京师范大学学科教学培养方案 .pdf VIP
- 初级消防试题及答案大全.docx VIP
- 核医学教学课件:血液和淋巴显像.ppt VIP
- 重庆市各地方周氏支族源流(1-170支族).doc VIP
- 建筑工程质量管理体系流程图.docx
- 淋巴系统核医学检查课件.ppt VIP
- (高清版)B-T 6003.1-2022 试验筛 技术要求和检验 第1部分:金属丝编织网试验筛.pdf VIP
- (已压缩)TUCST007-2020房屋建筑与市政基础设施工程施工安全风险评估技术标准.docx VIP
原创力文档

文档评论(0)