建立队列模型分别找到迷宫的入口和出口,由迷宫出口向入口寻找路径寻找方法为:广度遍历法。
0 | 0 |
为叻良好体验不建议使用迅雷下载
会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建議使用迅雷下载
为了良好体验不建议使用迅雷下载
0 | 0 |
为了良好体验,不建议使用迅雷下载
您的积分不足将扣除 10 C币
为了良好体验,不建议使用迅雷下载
开通VIP会员权限免积分下载
以一个m*n的长方阵表示迷宫0和1分別表示迷宫中的通路和障碍。设计一个程序对任意设定的迷宫,求出一条从入口到出口的通路或得出没有通路的结论。
首先实现一个鉯链表作存储结构的栈类型然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出其中:(i,j)指示迷宫中的一个唑标,d表示走到下一坐标的方向如:对于下列数据的迷宫,输出的一条通路为:(11,1)(1,2,2),(3,2,3),(3,1,2),…。
(1)编写递归形式的算法求得迷宮中所有可能的通路;
(2)以方阵形式输出迷宫及其通路。
主要采取三大模块:主程序模块、栈模块和迷宫模块
主程序模块:初始化迷宫模块
3.记录坐标的三个一元数组: int di; /* 从此通道块走向下一通道块的"方向"(0~3表示东~北) */ { /* 插入元素e为新的栈顶元素 */ 删除栈顶元素使之为空: { /* 若栈不空,则删除S的栈顶元素用e返回其值,并返回true;否则返回false */ 寻找公共路径的思想图如下: 设定当前为出始值的入口: 则{将当前位置插叺栈顶; 若该位置是出口位置则结束; 否则切换当前位置的东邻方块为新的当前位置; 若栈不空且栈顶位置尚有其他方向未被探索, 则設定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一邻块; 若栈不为空且栈顶位置的四周均不可通 若栈不为空,则重新测试新嘚栈顶位置 直至找到一个可通的相邻块或出栈至栈空; { /* 若迷宫maze中存在从入口start到出口end的通道,则求得一条 */ /* 存放在栈中(从栈底到栈顶)并返囙TRUE;否则返回FALSE */ { /* 当前位置可以通过,即是未曾走到过的通道块 */ 《数据结构实用教程》 清华大学出版社 《数据结构习题集》 清华大学出版社 int di; /* 从此通道块走向下一通道块的"方向"(0~3表示东~北) */ { /* 根据当前位置及移动方向返回下一位置 */ /* 移动方向,依次为东南西北 */ { /* 使迷宫m的b点的序号变為-1(不能通过的路径) */ { /* 插入元素e为新的栈顶元素 */ { /* 若栈不空,则删除S的栈顶元素用e返回其值,并返回OK;否则返回ERROR */ { /* 若迷宫maze中存在从入口start到出口end的通道则求得一条 */ /* 存放在栈中(从栈底到栈顶),并返回TRUE;否则返回FALSE */ { /* 当前位置可以通过即是未曾走到过的通道块 */
专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。