最简单的迷宫
来源:互联网 发布:自建别墅 知乎 编辑:程序博客网 时间:2024/04/30 14:02
#include<stdio.h>
#include<string.h>
#define n 5
#define m 5
struct Node
{
int x;
int y;
}a[n*m+1];
int visit[n+1][m+1];
int jiexian(int xx,int yy)
{
if(xx<0||xx>n-1)
return 0;
else if(yy<0||yy>m-1)
return 0;
else
return 1;
}
int bfs(int x1,int y1,int x2,int y2)
{
int xx;
int yy;
memset(visit,0,sizeof(visit));
int rear=0;
int front = 0;
int map[n][m];
printf("请输入地图\n");
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
scanf("%d",&map[i][j]);
a[rear].x=x1;
a[rear++].y=y1;
int x_add[4]={0,0,1,-1};
int y_add[4]={1,-1,0,0};
while(rear>front)
{
if(a[front].x==x2&&a[front].y==y2)
return 1;
int x=a[front].x;
int y=a[front++].y;
for(int i=0;i<4;i++)
{
xx=x+x_add[i];
yy=y+y_add[i];
if(map[xx][yy]==1&&visit[xx][yy]==0&&jiexian(xx,yy))
{
visit[xx][yy]=1;
a[rear].x=xx;
a[rear++].y=yy;
}
}
}
return 0;
}
int main()
{
int x2,y2;
int x1,y1;
printf("请输入入口\n");
scanf("%d%d",&x1,&y1);
printf("请输入出口\n");
scanf("%d%d",&x2,&y2);
int ans=bfs(x1,y1,x2,y2);
if(ans)
printf("OK");
else
printf("NO");
return 0;
}
- 最简单的迷宫
- 最简单的迷宫求解
- 最简单的迷宫求解
- DFS之最简单的迷宫问题
- 迷宫的最短路径(BFS的简单应用)
- 最简单逻辑迷宫求解
- 最简单的BFS入门题目——迷宫的最短路径
- 简单的迷宫
- 实现简单的迷宫
- 迷宫的简单实现
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 数据可视化6步法
- JavaScript用JQuery呼叫Server端方法
- Ubuntu应用程序创建桌面快捷方式
- 怎么获取或计算网络中任意两个节点的带宽?
- 在 Windows Server 2012 上安装 IIS 8
- 最简单的迷宫
- CxImage 简单配置与使用
- hBase独立模式的安装与测试
- Fiddler教程
- ios:提示框第三方库之MBProgressHUD
- 发现目录启用了自动目录列表功能apache如何设置。【解决方案】
- Objectarx快速入门
- 黑马程序员—————浅析java程序的执行
- 经典SQL语句,实现按评论数最多的排序