erl_stack_queue-队列求迷宫最短路径

本文介绍了如何使用队列数据结构寻找迷宫的最短路径。算法从入口(2,2)开始,逐步搜索并记录可达坐标,直到找到出口(9,7)。通过队列实现先进先出,避免死循环,确保路径最短。代码示例展示了具体的实现细节。" 100006223,8637089,网络工程师实践:HDLC与PPP配置及认证,"['网络协议', '网络配置', '安全认证', '路由协议']
摘要由CSDN通过智能技术生成

求迷宫的最短路径:
现要求设计一个算法找一条从迷宫入口到出口的最短路径。本算法要求找一条迷宫的最短路径,算法的基本思想为:从迷宫入口点(2,2)出发,向四周搜索,记下所有一步能到达的坐标点;然后依次再从这些点出发,再记下所有一步能到达的坐标点,…,依此类推,直到到达迷宫的出口点(9,7)为止,然后从出口点沿搜索路径回溯直至入口。这样就找到了一条迷宫的最短路径,否则迷宫无路径。
Map = [
[1,1,1,1,1,1,1,1,1,1],
[1,0,1,1,1,0,1,1,1,1],
[1,1,0,1,0,1,1,1,1,1],
[1,0,1,0,0,0,0,0,1,1],
[1,0,1,1,1,0,1,1,1,1],
[1,1,0,0,1,1,0,0,0,1],
[1,0,1,1,0,0,1,1,0,1],
[1,1,1,1,1,1,1,1,1,1]
],
有关迷宫的数据结构、试探方向、如何防止重复到达某点以避免发生死循环的问题与例3.2 处理相同,不同的是:如何存储搜索路径。在搜索过程中必须记下每一个可到达的坐标点,以便从这些点出发继续向四周搜索。由于先到达的点先向下搜索,故引进一个“先进先出”数据结构——队列来保存已到达的坐标点。
方向list
Dir = [{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,1},{-1,0},{-1,1}],
队列
Path_Queue : 【{X,Y,Dir}。。】
判断是否可走
lists:member({X+DX,Y+DY},FindList)

代码如下:


find_path_queue()->
    Map = [
        [1,1,1,1,1,1,1,1,1,1],
        [1,0,1,1,1,0,1,1,1,1],
        [1,1,0,1,0,1,1,1,1,1],
        [1,0,1,0,0,0,0,0,1,1],
        [1,0,1,1,1,0,1,1,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值