- 18
- 0
- 约9.93千字
- 约 62页
- 2016-09-13 发布于河南
- 举报
数据结构课程设计1【荐】.ppt
开关盒布线实现代码-2 // 是否有不可布线的网组? if (s-IsEmpty()) { ? delete s; coutSwitch box is routableendl; return true;} delete s; coutSwitch box is not routableendl; return false; } * 按一种固定的方式来选择可行的相邻位置,将可以使问题得到简化。 例如,可以首先尝试向右移动,然后是向下,向左,最后是向上,对应的移动编号依次为0,1,2,3。 从当前位置here沿移动方向i(编号)移动到下一个相邻位置时,则row和col坐标的增量是offset[i].row, offset[i].col. 下一个移动位置的选择 * 下一个移动方向的计算 从here回退到前一个位置(next)后下一个移动方向的计算 if (next.row==here.row) //here为next邻居 option=2+next.col-here.col; else option =3+next.row-here.row; * 假定maze、m (迷宫的大小)和path都是按如下方式定义的全局变量: int **maze, m; StackPosition *path; 迷宫算法实现 * bool FindPath() {// 寻找从位置(1,1)到出口(m,m)的路径 //如果成功则返回true ,否则返回false // 如果内存不足则引发异常NoMem path = new StackPosition(m * m - 1); //对偏移量进行初始化 Position offset[4]; offset[0].row = 0; offset[0].col = 1; //向右 offset[l].row = 1; offset[l].col = 0; // 向下 offset[2].row = 0; offset[2].col = -1; //向左 offset[3].row = -1; offset[3].col = 0; //向上 搜索迷宫路径的代码 * //在迷宫周围增加一圈障碍物 for (int i=0; i=m+l; i++) { maze[0][i]= maze[m+l][i]=1; //底和顶 maze[i][0]= maze[i][m+l]=1; //左和右 } Position here; here.row = 1; here.col = 1; maze[i][i]= 1; // 阻止返回入口 int option = 0; //下一个移动方向编号 int LastOption = 3; 搜索迷宫路径的代码 * //寻找一条路径 while (here.row!=m||here.col!=m){// 不是出口 //寻找并移动到一个相邻位置 int r, c; while (option = LastOption) { r = here.row + offset[option].row; c = here.col + offset[option].col; if (maze[r][c]== 0) break; //可行的相邻位置 option++; //下一个选择 } 搜索迷宫路径的代码 * // 找到一个相邻位置了吗? if (option=LastOption){//移动到maze[r][c] path-Add(here) ; here.row = r; here.col = c; //设置障碍物以阻止再次访问 maze[r][c]= 1; option = 0; } 搜索迷宫路径的代码 * else {//没有可用的相邻位置,回溯 if (path-IsEmpty()) return false; Position next; path-Delete(next) ; if (next.row == here.row) //here为next邻居 option = 2 + next.col - here.col; else option = 3 + next.row - here.row; here = next; } } return true;//到达迷宫出口 } 搜索迷宫路径的代码 * 思考 迷宫自动生成? 寻找从入口到出口的最短路径? * 队列的应用—电路布线 * 电路布线问题 * 在解决电路布线问题时,一种很常用的方法就是在布线区域叠上一个网格,该网格把布线区域划分成n×m个方格,就像迷宫一样。 从一个方格a的中心点连接到另一个方格b的中心点时,转弯处必须采用直角。如果已经有
您可能关注的文档
- 数据结构 第一章【荐】.ppt
- 数据结构 顺序表 实验报告【荐】.doc
- 数据结构(C语言版)9 综合应用实例【荐】.ppt
- 数据结构(朱战立 C++语言描述)第01章【荐】.ppt
- 数据结构(第1章)讲义【荐】.ppt
- 数据结构(线性表)【荐】.ppt
- 数据结构-图【荐】.ppt
- 数据结构-实验指导书-07秋【荐】.pdf
- 数据结构1【荐】.pdf
- 数据结构1概述【荐】.ppt
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
最近下载
- 2025年北京第一次高中学业水平合格考物理试卷(含答案).pdf VIP
- 市政道路工程施工组织设计模版.doc VIP
- 15道公务员面试(国考)省级及以下机构重庆市网络信息类岗位面试问题考察点及参考回答.pdf VIP
- 跪拜土地阅读理解答案.docx VIP
- TAP检测项目介绍课件.ppt VIP
- 2025年综合类-心理治疗(师)-专业知识历年真题摘选带答案(5卷单选100题合辑).docx VIP
- 全国到地市矢量地图(很难找的资料)课件.pptx VIP
- 2025干部任前廉政知识考试题库及答案.pdf VIP
- 六年级上册期末道法知识点早读晚练小纸条.pdf VIP
- 质量管理小组活动推进指南(TCAQ10208-2024).docx
原创力文档

文档评论(0)