欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计-迷宫问题

    • 资源ID:1394436       资源大小:400KB        全文页数:17页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    数据结构课程设计-迷宫问题

    1、 目录 第一部分 需求分析 第二部分 详细设计 第三部分 调试分析 第四部分 用户手册 第五部分 测试结果 第六部分 附录 第七部分 参考文献 一、一、 需求分析需求分析 1、对于给定的一个迷宫,给出一个出口和入口,找一条从入口到出 口的通路,并把这条通路显示出来; 如果没有找到这样的通路给出没 有这样通路的信息。 2、可以用一个 mn 的长方阵表示迷宫,0 和 1 分别表示迷宫中的 通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到 出口的通路,或得出没有通路的结论。 3、编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j, d)的形式输出,其中:(i,j)指示迷宫中的一个坐

    2、标,d表示走到下 一坐标的方向。 4、由于迷宫是任意给定的,所以程序要能够对给定的迷宫生成对应 的矩阵表示,所以程序的输入包括了矩阵的行数、列数、迷宫内墙的 个数、迷宫内墙的坐标、所求的通路的入口坐标、出口坐标。 二、详细设计二、详细设计 1、计算机解迷宫通常用的是“穷举求解“方法,即从人口出发, 顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路 退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所 有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。 可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口 点的下标为(n,n)。为处理方便起见,可在迷宫的

    3、四周加一圈障碍。 对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。 2、如果在某个位置上四个方向都走不通的话,就退回到前一个位 置, 换一个方向再试, 如果这个位置已经没有方向可试了就再退一步, 如果所有已经走过的位置的四个方向都试探过了, 一直退到起始点都 没有走通,那就说明这个迷宫根本不通。 3、所谓“走不通“不单是指遇到“墙挡路“,还有“已经走过的路不能 重复走第二次“,它包括“曾经走过而没有走通的路“。 显然为了保证在任何位置上都能沿原路退回,需要用一个“后进 先出“的结构即栈来保存从入口到当前位置的路径。并且在走出出口 之后,栈中保存的正是一条从入口到出口的路径。 4、若当

    4、前位置“可通” ,则纳入“当前路径” ,并继续朝“下一位 置”探索;若当前位置“不可通” ,则应顺着“来的方向”退回到“前 一通道块” ,然后朝着除“来向”之外的其他方向继续探索;若该通 道块的四周四个方块均“不可通” ,则应从“当前路径”上删除该通 道块。 所谓“下一位置”指的是“当前位置”四周四个方向(东、南、西、 北)上相邻的方块。假设以栈 S 记录“当前路径” ,则栈顶中存放的 是 “当前路径上最后一个通道块” 。 由此, “纳入路径” 的操作即为 “当 前位置入栈” ; “从当前路径上删除前一通道块”的操作即为“出栈” 。 5、找通路的程序的关键部分可以表示如下: do 若当前位置可

    5、通, 则 将当前位置插入栈顶; / 纳入路径 若该位置是出口位置,则算法结束; / 此时栈中存放的是一条从入口位置到出口位置的路径 否则切换当前位置的东邻方块为新的当前位置; 否则 若栈不空且栈顶位置尚有其他方向未被探索, 则设定新的当前位置为: 沿顺时针方向旋转找到的栈顶位置的 下一相邻块; 若栈不空但栈顶位置的四周均不可通, 则 删去栈顶位置; / 从路径中删去该通道块 若栈不空,则重新测试新的栈顶位置, 直至找到一个可通的相邻块或出栈至栈空; while (栈不空); 6、程序中用的数据结构解析: 程序中用了顺序栈保存当前找到的路径, 当前位置不可通时, 可以出栈,退回到前一个位置再继续

    6、探索通路,栈的定义如下: struct SqStack SElemType *base; / 在栈构造之前和销毁之后,base 的值 为 NULL SElemType *top; / 栈顶指针 int stacksize; / 当前已分配的存储空间,以元素为单位 ; / 顺序栈 栈中元素的类型结构 程序中先定义了一个表示坐标的类型结构: struct PosType / 迷宫坐标位置类型 int x; / 行值 int y; / 列值 ; 栈中元素的类型结构如下: struct SElemType / 栈的元素类型 int ord; / 通道块在路径上的序号 PosType seat; / 通道块在迷宫中的坐标位置 int di; / 从此通道块走向下一通道块的方向(03 表 示东北) ; 7、主函数的流程图 三、三、 调试分析调试分析 1、对于程序的设计由简单到复杂,先设计一个整体的轮廓然后再慢 慢的增加程序的功能,这样


    注意事项

    本文(数据结构课程设计-迷宫问题)为本站会员(毕****文)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583