1、数据结构课程设计之漫步迷宫 - 1 - 算法与数据结构算法与数据结构 课程设计说明书课程设计说明书 题目题目: 漫 步 迷 宫 数据结构课程设计之漫步迷宫 - 2 - 目目 录录 一、一、课程设计题目课程设计题目 3 3 二二、问题描述问题描述. 3 3 三三、基本要求基本要求. 3 3 四四、设计思想设计思想. 3 3 4.1 函数的功能和参数 3 3 4.2 存储结构的选择 4 4 4.3 迷宫有解无解情况的解读 5 5 五五、漫步迷宫源程序漫步迷宫源程序 5 5 六六、运行结果运行结果. 1 10 0 6.1 主界面 1 10 0 6.2 手动生成迷宫 . 1 10 0 6.3 自动生成
2、迷宫 . 1 13 3 七七、设计过程出现的问题和优点设计过程出现的问题和优点 1 14 4 八八、设计的心得体会设计的心得体会 1 17 7 数据结构课程设计之漫步迷宫 - 3 - 数据结构课程设计数据结构课程设计-漫步迷宫漫步迷宫 一、一、 课程设计题目:漫步迷宫课程设计题目:漫步迷宫 二、二、 问题描述:问题描述: 用 m 行 n 列的 m*n 个正方格表示一个迷宫,其中划有斜线的方格表示不 可通行,未划有斜线的方格表示通行。请编写寻找从入口到出口的一条最短 路径的程序。 三、三、 基本要求:基本要求: 1、 迷宫的规则 (即行数和列数) , 状态设置 (即各方格能否通行的状态) , 以
3、及入口和出口的位置,均应由输入随机确定。 2、 求得的最短路径, 应该以从入口到出口的路径上的各个方格的坐标的 线性序列输出。当无通路是,应该报告无路径的信息。 3、 尽量采用结构化程序设计方法, 要求对各个模块的功能及参数做必要 的说明。 四、四、 设计思想设计思想 4.1 函数的功能和参数 函数参数 函数作用 point Row, col, predecessor row,col,predecessor 分别代表当 前位置的行坐标和列坐标,列坐标和 移动到下一步的方向 creat_maze m,n 手动输入迷宫,其中 m,n 分别为行列 的值 present_maze m,n 自动生成迷宫
4、,其中 m,n 分别为行列 其 他 函 数 名 数据结构课程设计之漫步迷宫 - 4 - 的值 present_in m,n,a,b 自动生成迷宫的入口,m,n,a,b 分 别为迷宫的行数、列数、入口的坐标 present_out m,n,c,d 自动生成迷宫的出口,m,n,c,d 分 别为迷宫的行数、列数、出口的坐标 print_maze m,n,a,b,c,d 显示生成的迷宫的图形,m,n,a,b, c,d 分别为迷宫的行数和列数、入口 坐标和出口坐标 result_maze m,n 显示最后的迷宫最短路径的路线,m, n 分别为路径的各个点的行列数坐标 enqueue p 为队列函数,实现迷宫的各个点的存 储 visit row,col 将迷宫当前位置的前后左右四个方向 上联通但没有走过的点的值改为 2, row,col 分别代表当前位置的行坐标 和列坐标 mazepath m,n,a,b,c,d 实现对迷宫的最短路径的回溯,m, n,a,b,c,d 分别为迷宫的行数和 列数、入口坐标和出口坐标 4.2 存储结构