基本广搜
2023-08-17 20:49:32
发布于:广东
#include <bits/stdc++.h>
using namespace std;
const int maxn=101;
int g[maxn][maxn];
int n,m;
int fx[4]={-1,1,0,0};
int fy[4]={0,0,1,-1};
struct pt{
int x,y;
};
bool vis[maxn][maxn];
queue<pt> q;
bool notin(int a,int b){
return a<1 || b<1 || a>n || b>n;
}
int bfs(){
while (!q.empty()){
pt now=q.front();
cout << g[now.x][now.y] << " ";
q.pop();
for (int i=0;i<4;i++){
int nx,ny;
nx =now.x+fx[i];
ny =now.y+fy[i];
if (notin(nx,ny) || vis[nx][ny]) continue;
vis[nx][ny]=true;
q.push({nx,ny});
}
}
}
int main(){
cin >> n;
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++){
cin >> g[i][j];
}
}
q.push((pt){1,1});
vis[1][1]=true;
bfs();
return 0;
}
这里空空如也
有帮助,赞一个