图--用BFS求最短路

使用BFS算法解决从起点到终点在网格迷宫中的最短路径问题。通过构建二维数组表示迷宫,将起始节点入队,然后不断查找相邻节点并更新路径,直至找到终点。
摘要由CSDN通过智能技术生成

问题描述

  • 假设有一个网格迷宫,由m行n列的单元格组成,每个单元要么是空地(用1来表示),要么是障碍物(用0来表示),问如何找到从起点到终点的最短路径。
    例如图1所示:
    这里写图片描述

  • 网格迷宫的BFS树也成为最短路树如图二所示:
    这里写图片描述

分析

步骤
  • (1)将网格迷宫用二维数组存起来。
  • (2)将第一个节点加入队列。
  • (3)取队首节点,找到队首节点相邻的节点,加入队列(加入的顺序根据你查找的上下左右四个方向的顺序决定)。
  • (4)将队首元素出队。
  • (5)重复(3)(4)步骤,直到找到终点。
补充
  • 为了记录路径,我们用一个path数组记录每一个节点的父节点。

代码

/*❤CYZ*/
#include<iostream>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值