- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计--迷宫问题
长 沙 学 院
课程设计说明书
题目 迷宫问题 系(部) 计算机科学与技术系 专业(班级) 2012软件工程(服务外包)9班 姓名 高锐 学号 2012022907 指导教师 付细楚 起止日期 2013.12.09 — 2013.12.21
课程设计任务书
课程名称:数据结构与算法
设计题目:迷宫问题
已知技术参数和设计要求:
问题描述:m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。迷宫问题要求求出从入口(1,1)到出口(m,n)的一条通路,或得出没有通路的结论。
基本要求:
首先实现一个以链表作存储结构的栈类型,然后编写一个求迷宫问题的非递归程序,求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标, d表示走到下一坐标的方向。
测试数据:
迷宫用伪随机数产生程序产生。
左上角(1,1)为入口,右下角(m,n)为出口。
选作内容:
1编写递归形式的算法,求得迷宫中的所有可能的通路
2以方阵的形式输出迷宫及其通路迷宫中的所有可能的通路
设计工作量:
40课时
工作计划:
见课表
长沙学院课程设计鉴定表
姓名 高锐 学号 2012022907 专业 软件工程 班级 12软9班 设计题目 迷宫问题 指导教师 付细楚 指导教师意见:
评定等级: 教师签名: 日期: 答辩小组意见:
评定等级: 答辩小组长签名: 日期: 教研室意见:
教研室主任签名: 日期: 系(部)意见:
系主任签名: 日期: 说明 课程设计成绩分“优秀”、“良好”、“中等”、“及格”、“不及格”五类; 摘要
计算机系的课程设计,我设计了一个迷宫系统,利用了链表栈结构来保存所走的宫路径,可以实现寻找迷宫通路的功能,当无法找到出口时,可提示用户不存在。当输入行数和列数(包括外墙)、迷宫内墙单元数、迷宫内墙每个单元的行数和列数就可以自动生成一个迷宫。
关键词:课程设计,数据结构,迷宫,链表栈;
目录
第1章 设计内容与要求 2
1.1设计内容 2
1.2设计要求 2
第2章 需求分析 3
2.1功能需求分析 3
2.2软件功能 3
2.3需求分析用例 4
2.4求迷宫路径的基本思想 4
2.5输入的形式和输入值的范围 4
2.6输出的形式 4
2.7程序所能达到的功能 4
2.8迷宫求解流程图 5
第3章 系统设计 6
3.1界面设计 6
3.2函数设计 6
3.3结构设计 7
3.4算法设计 8
第4章 系统实现 15
4.1输出迷宫的结构 15
4.2迷宫的实现 17
第5章 总结 21
参考文献 22
附录 23
第1章 设计内容与要求
1.1设计内容
设计一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。迷宫问题要求求出从入口(1,1)到出口(m,n)的一条通路,或得出没有通路的结论
。
1.2设计要求
创建一个以链表作存储结构的栈类型,编写一个求迷宫问题的非递归程序,求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标, d表示走到下一坐标的方向。
第2章 需求分析
2.1功能需求分析
求迷宫中从入口到出口的所有路径是一个经典的程序设计问题。由于计算机解迷宫时,通常用的是“穷举求解”的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路退回,换一个方向在继续探索,直至搜有可能的通路都探索到为止。为了保证在任何位置上都能沿原路退回,显然需要用一个后进先出的结构来保存从入口到当前位置的路径。因此,在求迷宫通路的算法中应用“栈”也就是自热而然的事了
2.2软件功能
图1.1 系统功能结构图
1、迷宫的建立:
迷宫中存在通路和障碍,为了方便迷宫的创建,可用0表示通路,用1表示障碍,这样迷宫就可以用0、1矩阵来描述。
2、迷宫的存储:
迷宫是一个矩形区域,可以使用二维数组表示迷宫,这样迷宫的每一个位置都可以用其行列号来唯一指定,但是二维数组不能动态定义其大小,我们可以考虑先定义一个较大的二维数组maze[M+2][N+2],然后用它的前m行n列来存放元素,即可得到一个m×n的二维数组,这样(0,0)表示迷宫入口位置,(m-1,n-1)表示迷宫出口位置。
3、迷宫路径的搜索:
首先从迷宫的入口开始,如果该位置就是迷宫出口,则已经找到了一条路径,搜索工作结束。否则搜索其上、下、左、右位置是否是障碍,若不是障碍,就移动到该位置,然后再从该位置开始搜索通往出口的路径;若是障碍就选择另一个相邻的位置,并从它开
您可能关注的文档
最近下载
- 江苏开放大学公文写作与处理050008过程性考核作业三.docx VIP
- 运维规范试题.docx VIP
- 《先进纺织技术》课件.ppt VIP
- 2025秋数学人教二年级(上) 身体上的尺子:第1课时 身体上的长度.pptx VIP
- 保定动力19秋网络运维班知识测试_A.docx VIP
- 高速铁路概论单元四第节高速铁路通信课件.pptx VIP
- HFC网络(光机及以下)调试运维培训试题.docx VIP
- 化学-海南省天一大联考2023-2024学年高三学业水平诊断(二)带答案.docx VIP
- 高考数学培优---椭圆、双曲线的焦点弦被焦点分成定比.docx VIP
- 福建省电子技术基础应试指南测试卷答案.docx VIP
原创力文档


文档评论(0)