迷宫求解第九组.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
滁州学院 课程设计报告 课程名称: 数据结构 设计题目: 迷宫求解 系 另 计算机科学与技术系 专 业: 09计算机科学与技术(专升本) 组 别: 起止日期: 指导教师: 计算机科学与技术系二OO九年制 课程设计题目 迷宫求解 姓名 学号 班级 09计专 系别 计算机科学与技术系 专业 计算机科学与技术 组别 组长 组员 指导教师 课程 设计 目的 通过栈的应用实现迷宫求解 课程 设计 环境 VC++6.0 课程 设计 任务 和要 求 求迷宫中从入口到出口的所有路径 课程设计工作进度计划 序号 起止日期 工作内容 1 2010.1.4 明确组内成员的工作与任务 2 2010.1.5 查阅相关资料 3 2010.1.6 明确迷宫的编程思想 4 2010.1.7 编写代码 5 2010.1.8 调试分析、查找错误 6 2010.1.9 后续不断完善修改 7 2010.1.10 组内成员交流心得,任务完成 教研室审核意见: 教研室主任签字: 年 月 日 目录 TOC \o 1-5 \h \z \o Current Document 需求分析 4 1.1设计题目 4 1.2设计任务 4 1.3设计目标 4 1.4课程设计思想 4 1.5软硬件运行环境 4 1.6开发工具 4 \o Current Document 概要设计 5 2.1主要数据结构: 5 2.2各子函数模块功能: 5 2.3所用方法及其原理 5 \o Current Document 详细设计 6 \o Current Document 调试与操作说明 12 系统调试分析 12 4.2操作说明 12 \o Current Document 课程设计总结与体会 13 致谢 13 \o Current Document 参考文献 13 说明 13 1.需求分析 设计题目 迷宫求解 设计任务 通过栈的应用实现迷宫求解 设计目标 掌握栈的基本操作及应用,理解迷宫求解的思想 课程设计思想 应用栈,使用“穷举求解”方法,即从入口出发,顺某一方向向前探索,若能走通,则 继续往前走;否则沿原路退回,换一个方向再继续 探索,直至所有可能的通路都探索到为 止,为了保证在任何位置上都能沿原路退回, 需要用栈的结构来保存从入口到当前位置的路 径。 软硬件运行环境 Windows 2000 开发工具 VisualC++6.0 2.概要设计 主要数据结构 typedef struct /* 迷宫坐标位置类型 */ { int x; /* 行值 */ int y; /* 列值 */ }PosType; typedef struct /* 栈的元素类型 */ */(0?3表示东?北)*/base 的值为 NULL */int ord; */ (0?3表示东?北)*/ base 的值为 NULL */ }SElemType; typedef struct SqStack SElemType *base; /* 在栈构造之前和销毁之后, SElemType *top; /* 栈顶指针 */ int stacksize; /* 当前已分配的存储空间,以元素为单位 */ }SqStack; /* 顺序栈 */ main(): 主函数的实现 各子函数模块功能: InitStack(S) :构造一个空栈 StackEmpty(S) :判断一个栈是否为空 Push(S, e) :插入元素 e 为新的栈顶元素 Pop(S,e) :若栈不空,则删除 S 的栈顶元素 NextPos(c, di) :根据当前位置及移动方向,返回下一位置 MazePath(start, end):若迷宫 maze中存在从入口 start到出口 end的通道,则求得一条 Print(x, y) :输出迷宫的解 所用方法及其原理 首先, 在计算机中可以用方块图表示迷宫。图中的每个方块或为通道, 或为墙。所求路 径必须是简单路径,即在求得的路径上不能重复出现同一通道块。 假设“当前位置”指的是“在搜索过程中某一时刻所在图中某个方块位置” ,则求迷宫 中一条路径的算法的基本思想是:若当前位置“可通” ,则纳入“当前路径” ,并继续朝“下 一位置”探索,即切换“下一位置”为“当前位置” ,如此重复直至到达出口;若当前位置 “不可通”,则应顺着“来向”退回到“前一通道块 ”,然后朝着除“来向”之外的其他方向 继续探索;若该通道块的四周 4个方块均“不可通” ,则应从“当前路径”上删除该通道块。 所谓“下一位置”指的是“当前位置”四周 4 个方向(东、南、西、北)上相邻的方块。假 设以栈S记录“当前路径”,则栈顶中存放的是“当前路径上最后一个通道块” ,由此,“纳 入路径” 的操作即为

文档评论(0)

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

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

1亿VIP精品文档

相关文档