深度优先搜索迷宫算法实现
迷宫实验岳宇轩1 在本实验中,我们实现了迷宫实验,使用深度优先搜索来寻找最短路径。下面是我们在实验中遇到的问题和解决方案。 数据结构 在本实验中,我们使用了一个二维数组map[10][12]来表示地图。其元素有三种取值:0代表无墙、没走过;1代表墙;2代表无墙、已走过。这三个值的选择是因为我们需要区分墙和无墙两个状态,以及老鼠是否已经走过这个点。 堆栈实现 我们使用了堆栈来存储老鼠走过的路径。堆栈的实现是关键的,因为我们需要不断地压入和弹出老鼠走过的点,以便找到最短路径。在本实验中,我们定义了两个堆栈:s和minPath。s用来存储老鼠走过的路径,而minPath用来存储最短路径。 FillStack函数 FillStack函数是我们实现的关键函数之一。该函数的作用是填充老鼠走过的路径。如果老鼠可以走到出口,则返回true;否则,返回false。在FillStack函数中,我们使用了do-while循环来实现路径的填充。 RidirectStack函数 RidirectStack函数是我们实现的另一个关键函数。该函数的作用是修改老鼠走过的路径。该函数会拿出路径的最后一个节点,并修改最后一个节点的方向。如果这个节点不能再进行修改了,则删除该点,再倒数第二个,修改方向...依次直到拿出了起始点。如果起始点也不能修改方向了,则是空栈。 实验心得 在本实验中,我们学到了很多有用的经验。首先,我们学到了堆栈的实现和使用。我们了解到堆栈不能直接复制,而是需要使用额外的栈来实现复制。其次,我们学到了FillStack和RidirectStack这两个函数的实现和使用。这些函数是我们实现迷宫实验的关键所在。 迷宫实验的实现 在本实验中,我们通过使用深度优先搜索和堆栈来实现迷宫实验。我们首先输入start点坐标,然后判断start点是否有后继。如果start点无问题,则把它压入栈s。然后,我们使用FillStack函数来填充老鼠走过的路径,并判断路径长度。如果路径长度为2,则已经是最短路径,直接输出。否则,我们继续使用RidirectStack函数来修改老鼠走过的路径,以便找到最短路径。 总结 在本实验中,我们实现了迷宫实验,使用深度优先搜索和堆栈来寻找最短路径。我们学到了很多有用的经验,包括堆栈的实现和使用、FillStack和RidirectStack函数的实现和使用等。这些经验将对我们的未来学习和工作产生深远的影响。
剩余30页未读,继续阅读
- 粉丝: 16
- 资源: 302
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储