云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构与算法课程设计报告-哈工大-应用不相交集合生成随即迷宫

数据结构与算法课程设计报告-哈工大-应用不相交集合生成随即迷宫

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 10:33:11

哈尔滨工业大学课程设计报告

图1-2 N×N的迷宫

(3)寻找迷宫路径算法

迷宫一旦建立后,将迷宫表示为一个无向图:方格作为图中的顶点,如果两个相邻的方格之间没有墙则两个顶点之间有边。为找到从S到F的唯一的路径,在该图上从S处开始出发先深搜索,如果搜索到达了F,则搜索停止。 (4)画出迷宫和路径算法

用图形方式将上述算法获得的随机迷宫及其上的最短路径画出。用线段来表示迷宫中的墙,用在每个方格的中心的点来表示路径。

5

哈尔滨工业大学课程设计报告

2 算法设计

2.1 系统整体思路

使用不相交集合数据结构来构造一个N×N的从左上角到右下角只有一条路径的随机迷宫,然后在这一迷宫上执行深度优先搜索。利用不相交集合应用数组进行物理存储,用先深度搜索找到最短路径,记录下最短路径,最后将随机生成的迷宫和相应的路径显示出来。

2.2 关键数据结构设计

用一个二维数组存储迷宫,用不同的数字表示不同的状态,9表示不可到达的点,1表示墙,0表示通路,5表示顶点。按此方式存储生成的随机迷宫,并根据这样的结构来搜寻最短路径。最后根据这样的迷宫结构画出相应的图形界面。

2.3 构建随机迷宫功能相关算法

2.3.1算法基本思想

①随机选择一条边,判断边连接的顶点,是否在同一子树中,如果是则执行③,如果不是则执行②。

②连通这两个顶点,并把他们任意一个添加到另一个所在的子树中。

③判断起点和终点是否在同一子树中,如果不是则执行①,如果是则退出。 按这个步骤执行程序直至程序退出。 2.3.2算法流程图

开始

随机选择一条边

是 判断边连接的顶点 是否在同一子树中

否 连通这两个顶点并合并两个子树

判断所有顶点 否 是否在同一子树中

是 结束 图2-1 构建随机迷宫算法流程图

6

哈尔滨工业大学课程设计报告

2.4 寻找迷宫路径功能相关算法

2.4.1算法基本思想

迷宫表示为一个无向图:格子作为图中的顶点,如果两个相邻的方格之间没有墙则两个顶点之间有边(在二维数组中用不同数字作为标记)。找到从S到F的唯一的路径,在该图上从S处开始出发先深搜索,利用栈存储每一次回退前由起始点“S”到某点v的路径(链表实现,只需要存储对应二维数组的下标),回退前判断终止点v是否为迷宫重点“F”,如果是,停止搜索,栈中路径即为要求的最短路径,如果不是,栈顶元素出栈,并且依次回退,继续搜索下一条路径,以此类推,直到找最短路径。如果没有找到,则代表迷宫建立出错。 另:这里面迷宫生成时即生成只有一条有效路径到达终点(不重复访问格子的路径),所以寻找路径时找到的第一条即是唯一的一条路径。 2.4.2算法流程图 开始 令v=S(迷宫起点) 标记顶点v,压入栈 令v=n 是 判断v是否有未访问过的邻接顶点n 否 是 判断v是否为迷宫重点F 否 v出栈,回退至上一个顶点

输出栈中内容即为最短路径 结束 图2-2 寻找迷宫路径算法流程图

2.5 画出迷宫和路径功能相关算法

2.5.1算法基本思想

用图形方式将上述算法获得的随机迷宫及其上的最短路径画出。第一部分是画出随机迷宫,给定二维数组,其中有标记格子以及墙的有无,根据二位数组的下标计算出每个位置在显示器中的坐标X,Y,判断数组中内容所对应的是墙还是顶点还是通路,利用java中swing类组件画出相应图形。第二部分画出最短路径,给定栈中存储路径在二维数组中格子的下标,计算出在显示器中的坐标X,Y,由两个顶点中心点的连线表示两点之

7

哈尔滨工业大学课程设计报告

间的路径,利用java中swing类组件画出路径。 2.5.2算法流程图 开始 i=1,j=1 计算相应顶点(i,j)坐标(X,Y) 根据数组内容 在(X,Y)画出相应图形 j++ 是 判断j

图2-3 画出迷宫算法流程图

开始 出栈 计算路径相应坐标 在相应位置画出路径 否 判断栈是否为空 是 结束 图2-4 画出迷宫路径算法流程图

8

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

哈尔滨工业大学课程设计报告 图1-2 N×N的迷宫 (3)寻找迷宫路径算法 迷宫一旦建立后,将迷宫表示为一个无向图:方格作为图中的顶点,如果两个相邻的方格之间没有墙则两个顶点之间有边。为找到从S到F的唯一的路径,在该图上从S处开始出发先深搜索,如果搜索到达了F,则搜索停止。 (4)画出迷宫和路径算法 用图形方式将上述算法获得的随机迷宫及其上的最短路径画出。用线段来表示迷宫中的墙,用在每个方格的中心的点来表示路径。 5 哈尔滨工业大学课程设计报告 2 算法设计 2.1 系统整体思路 使用不相交集合数据结构来构造一个N×N的从左上角到右下角只有一条路径的随机迷宫,然后在这一迷宫上执行深度优先搜索。利用不相交集合应用数组进行物理

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com