数据结构课程设计--迷宫问题(队列)
《数据结构课程设计--迷宫问题(队列)》由会员分享,可在线阅读,更多相关《数据结构课程设计--迷宫问题(队列)(15页珍藏版)》请在毕设资料网上搜索。
1、 计算机科学与技术系 课程设计报告 2012 2013 学年第 二 学期 课程课程 数据结构与算法 课 程 设 计 名 称课 程 设 计 名 称 迷宫问题(队列) 学生姓名学生姓名 学号学号 专业班级专业班级 计算机科学与技术 11 级(3)班 指导教师指导教师 2013 年 3 月 题目:迷宫问题(队列) 以一个 m*n 的长方阵表示迷宫,0 和 1 分别表示迷宫中的通路和障碍。设计一个程序, 对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 要求:首先实现一个以链表作存储结构的队列,然后编写一个求解迷宫的非递归程序。 求得的通路以三元组(i,j,d)的形式输出,其中:(
2、i,j)指示迷宫中的一个坐标,d 表示 走到下一坐标的方向,如:对于下列数据的迷宫,输出的一条通路为:(1,1,1), (1,2,2),(3,2,3),(3,1,2),。 测试数据:迷宫的测试数据如下:左下角(1,1)为入口,右下角(8,9)为出口。 选做内容:(1)编写递归形式的算法,求得迷宫中所有可能的通路;(2)以方阵形式 输出迷宫及其通路 一、问题分析和任务定义: 从题目可知,迷宫问题主要是考察队列操作和图的遍历算法。 可以分解成以下几个问题: 1.迷宫的构建,若是一个个的将数据输入,那么一个 m*n 的二维数组要想快速的输入 进去是很麻烦的,那么就应该让计算机自动生成一个这样的迷宫。
3、 2.题目要求以链表作存储结构的对列来对访问过的通路结点进行存储,这样就会遇到一 个比较大的问题。那就是,在寻找的过程当中,当前队尾节点的其余三个方向上均都是墙, 这样就无法再走下去了,必须要返回。由于是用队列存储的,不能直接将队尾元素删除,那 就应该让其他元素从队头出队构成另外一条队列。 这样, 就可以将该结点从队列当中删除了。 3.在题目中提出,要输出经过结点的方向,对于任意的一个位置有四个方向,所以对于 队列中的么每一个结点设置一个方向的标记量, 表示走向下一结点的方向, 当前加到队尾的 元素的方向设置为 0,一旦有新元素入队,就对队尾元素的方向进行修改。 4.确定没有通路的思路:因为当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 迷宫 问题 队列
