走迷宫 bfs
来源:互联网 发布:利为汇seo营销培训 编辑:程序博客网 时间:2024/05/22 08:13
z//走迷宫,bfs
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define n 4 //行
#define m 4 //列
typedef struct dNode
{
int x;
int y;
int step;
} Node;
//表示上下左右四个操作
int u[4] = {0,0,-1,1};
int v[4] = {-1,1,0,0};
int vis[100][100];
int a[100][100];
int bfs(int nx,int ny,int tx,int ty)
{
Node q[100000];
int head = 0,tail = 1,k,i,j;
Node d;
d.x = nx;
d.y = ny;
d.step = 0;
q[tail] = d;
while(head <= tail)
{
++ head;
Node nd = q[head];
vis[nd.x][nd.y] = 1;
for(k = 0; k < 4; k ++)
{
int cx = nd.x + u[k];
int cy = nd.y + v[k];
if(cx <= m && cx >= 1 && cy <= n && cy >= 1 && !vis[cx][cy] && a[cx][cy] == 0)
{
Node cd;
cd.x = cx;
cd.y = cy;
cd.step = nd.step + 1;
q[++ tail] = cd;
vis[cx][cy] = 1;
if(cx == tx && cy == ty)
{
return cd.step;
}
}
}
}
}
int main()
{
int i,j,a1,b,c,d;
int nx,ny,tx,ty;
for(i = 1; i <= n; ++ i)
for(j = 1; j <= m; ++ j)
{
scanf("%d",&a[i][j]);//0表示路,1表示墙
}
scanf("%d %d %d %d",&a1,&b,&c,&d);
printf("%d",bfs(a1,b,c,d));
scanf("%d",&i);
return 0;
}
- BFS走迷宫
- 走迷宫 bfs
- BFS 走迷宫代码
- BFS 走迷宫
- BFS走迷宫
- 走迷宫最短步数--BFS
- bfs走迷宫
- 3752:走迷宫 bfs dfs
- HDU 3912 BFS走迷宫
- [OpenJudge-NOI]走迷宫 Bfs
- Java - Nuc - 走迷宫 ( bfs )
- BFS的应用-走迷宫
- ACM:图的BFS,走迷宫
- 走迷宫 sdut bfs 深度搜索
- hud 1010 走迷宫 搜索—bfs
- BFS 走迷宫 与STL的低效
- POJ 3984 BFS走迷宫问题
- 华为OJ 走迷宫 Java BFS
- cocos2d-x-3.0rc1 学习笔记1
- 回调函数
- web集群时session同步的3种方法
- [JAVA] 中止线程
- JAVA单例模式的几种实现方法
- 走迷宫 bfs
- 买房还银行利息技巧
- Java集合HashSet-ArrayList-HashMap的线程同步控制方法和区别
- 设计模式之工厂模式
- 数据采集接口设计
- ibatis之批量操作实例
- 关于设置iphone程序的横屏和竖屏模式的问题
- 如何空间就
- Mysql创建新用户方法