文章
15
粉丝
142
获赞
26
访问
19.2k
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
typedef pair<int, int> PII; // 定义一个二元组类型,用于存储坐标
const int N = 110; // 表示地图大小的最大值
int n, m;
int s1, s2; // 起始点的坐标
int d[N][N]; // 存储起始点到每个点的距离
char g[N][N]; // 存储地图信息
int res = 10000,flag=0; // res表示到达终点的最短距离,flag表示是否已经到达过终点
// 宽度优先搜索函数
int bfs(){
queue<PII> q; // 声明一个队列,用于存储每次搜索到的点
memset(d,-1,sizeof d); // 首先将d数组初始化为-1,表示该点未被访问过
d[s1][s2] = 0; // 将起始点的距离设为0
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; // 定义一个数组表示每个点的四个方向
q.push({s1,s2}); // 将起始点加入队列
while(q.size()){
auto t = q.front(); // 取出队头元素
q.pop(); // 弹出队头元素
for (int i=0;i<4;i++){ // 枚举该点四个方向
&nbs...
登录后发布评论
想问下这里可以用stack代替queque么?