码迷,mamicode.com
首页 > 其他好文 > 详细

代码是错误的 《迷宫问题》

时间:2015-07-16 16:20:37      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
#define N 50
int j=0;
int maps[5][5];
int dir[4][2]= {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
typedef struct formation
{
int x, y, m, n;
} FORM;
FORM s, e, p[N], now, next;

void Search(int a, int b)
{
if(a!=-1&&b!=-1)
{
for(int i=0; i<j; i++)
{
if(p[i].x==a&&p[i].y==b)
{
Search(p[i].m, p[i].n);
printf("(%d, %d)", p[i].x, p[i].y);
}
}
}
}

void BFS()
{
int flag=0;
queue<FORM>que;
que.push(s);
p[j++]=s;
while(!que.empty())
{
now=que.front();
que.pop();

for(int i=0; i<4; i++)
{
next.x=now.x+dir[i][0];
next.y=now.y+dir[i][1];
if(next.x>=0&&next.y<5&&maps[next.x][next.y]==0)
{
maps[next.x][next.y]=1;
next.m=now.x;
next.n=now.y;
que.push(next);
p[j++]=next;
}
if(next.x==e.x&&next.y==e.y)
{
Search(next.x, next.y);
flag=1;
break;
}
}
if(flag==1)
break;
}
}

int main()
{
int i, j;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
scanf("%d", &maps[i][j]);
s.x=0;
s.y=0;
s.m=-1;
s.n=-1;
e.x=4;
e.y=4;
printf("(%d, %d)", s.x, s.y);
BFS();
printf("(%d, %d)", e.x, e.y);
return 0;
}

代码是错误的 《迷宫问题》

标签:

原文地址:http://www.cnblogs.com/wazqWAZQ1/p/4651363.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!