//广搜
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node{
int x;
int y;
};
struct node queue[100];//队列实现广搜
int head=0;
int tail=0;
int map[51][51];//存图
int book[51][51];//标记走过的点
int n;//图的规模
int startx,starty;//降落点
int next[4][2]={
{-1,0},{1,0},{0,-1},{0,1}};
void bfs(int x,int y,int color)
{
if(head>=tail)
return;
int xnext,ynext;
for(int i=0;i<4;i++){
xnext=x+next[i][0];
ynext=y+next[i][1];
if(xnext>=1&&xnext<=n&&ynext>=1&&ynext<=n&&map[xnext][ynext]!=0&&book[xnext][ynext]==0){
map[xnext][ynext]=-1;
book[xnext][ynext]=1;
queue[tail].x=xnext;
queue[tail].y=ynext;
tail++;
}
}
head++;
bfs(queue[head].x,queue[head].y,color);
啊哈算法搜索应用之宝岛探险(BFS和DFS)
最新推荐文章于 2022-11-13 11:08:40 发布