广搜
2023-08-17 14:50:26
发布于:广东
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
int a[105][105];
int vis[105][105];
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
int n,m;
struct node{
int x,y;
};
void bfs(){
memset(vis,-1,sizeof vis);
queue<node> que;
que.push({0,0});
vis[0][0] = 0;
while (!que.empty()){
node n1=que.front();
que.pop();
cout<<a[n1.x][n1.y]<<" ";
for(int i=0;i<4;i++){
int xx=n1.x+dx[i];
int yy=n1.y+dy[i];
if(xx>=0 && yy>=0 && xx<n && yy<n && vis[xx][yy]==-1){
que.push({xx,yy});
vis[xx][yy] = vis[n1.x][n1.y] + 1;
}
}
}
}
int main(){
cin>>n;
for(int i=0;i<n;++i){
for(int j=0;j<n;++j){
cin>>a[i][j];
}
}
bfs();
return 0;
}
这里空空如也
有帮助,赞一个