找师傅(独家)

#include
#include
#include
using namespace std;
struct node{//三种数据 
	int x;
	int y;
	int step;
}que[1001]; 
int sx,sy,ex,ey;
int book[1001][1001],map[1001][1001];
//标记该点是搜索过
int nt[4][2]={{0,-1}/*左*/,{1,0}/*下*/,{0,1}/*右*/,{-1,0}/*上*/};
int head=1;int tail=1;int flag=0; 
//bfs函数 
int n,m;
void bfs(){
	//起点入队 
	que[tail].y=sy;
	que[tail].x=sx;
	que[tail].step=0;
	tail++;
	//非空入队 
	while(head=1&&tx<=n&&ty>=1&&ty<=m&&book[tx][ty]==0&&map[tx][ty]==0){
				book[tx][ty]=1;
				que[tail].x=tx;
				que[tail].y=ty;
				que[tail].step=que[head].step+1;
			}
			if(tx==ex&&ty==ey){
				flag=1;
				break; 
			}
		}
		if(flag==1)break;
		head++;//弹出队列,开始新一轮搜索 
	}
}
int main(){
	//输入数据
	cin>>n>>m;
	for(int i=0;i>map[i][j];
		}
	}
	cin>>sx>>sy>>ex>>ey;
	//广搜获得结果 
	bfs();
	//输出
	cout<

你可能感兴趣的:(算法,c++,数据结构)