网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构课程设计1.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
开关盒布线实现代码-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的中心点时,转弯处必须采用直角。如果已经有

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档