迷宫BFS实现

来源:互联网 发布:sybase 创建数据库 编辑:程序博客网 时间:2024/05/18 01:57
#include<iostream>using namespace std;struct note{int x;int y;int f;int count;};int main(){struct note que[2501];int num[51][51]={0},flag[51][51]={0};int diretion[4][2]={{0,1},{1,0},{0,-1},{-1,0}};int head,tail;int px,py;int lines,col,startx,starty,desx,desy;cin>>lines>>col>>startx>>starty>>desx>>desy;int status;for (int i=1;i<=lines;i++){for (int j=1;j<=col;j++){cin>>status;num[i][j]=status;}}head=1;tail=1;que[tail].x=startx;que[tail].y=starty;que[tail].count=0;que[tail].f=0;tail++;flag[startx][starty]=1;int f=0;while(head<tail){for (int k=0;k<4;k++){px=que[head].x+diretion[k][0];py=que[head].y+diretion[k][1];if (px<1||px>lines||py<1||py>col){continue;}if (num[px][py]==0&&flag[px][py]==0)//符合条件加入队列{flag[px][py]=1;que[tail].x=px;que[tail].y=py;que[tail].f=head;//记录路径que[tail].count=que[head].count+1;tail++;}if (px==desx&&py==desy){f=1;break;}}if (f==1){break;}head++;}cout<<que[tail-1].count<<endl;for (i=1;i<tail;i++){}cout<<endl;}

0 0
原创粉丝点击