POJ 迷宫问题+基础bfs
来源:互联网 发布:淘宝价格用什么字体 编辑:程序博客网 时间:2024/06/10 09:27
#include"stdio.h"#include"stdlib.h"struct dd{ int x; int y;};int map[5][5];int dir[4][2]={1,0,-1,0,0,1,0,-1}; //方向 struct dd queue[50],record[5][5]; //队列和路径 void bfs(){ struct dd next,current; //表示下一个节点的坐标,表示当前节点 int head,end,i; head=end=0; current.x=queue[end].x; //将第一个放进队列的元素设为当前 current.y=queue[end].y; end++; while(head<end) { current=queue[head++]; for(i=0;i<4;i++) //从四个方向开始选取路径 { next.x=current.x+dir[i][0]; next.y=current.y+dir[i][1]; if(next.x<5&&next.y<5&&next.x>=0&&next.y>=0&&map[next.x][next.y]==0) { record[next.x][next.y].x=current.x; //保存第一个到达这个点的坐标(因为当next被走过之后会被标记 record[next.x][next.y].y=current.y; //因此不用担心会被其他的节点访问) if(next.x==4 && next.y==4) { return ; } else { queue[end++]=next; map[next.x][next.y]=1; } } } }}int main(){ int i,j,m,n,k; for(i=0;i<5;i++) for(j=0;j<5;j++) { scanf("%d",&map[i][j]); } map[0][0]=1; //将起点标记为走过 queue[0].x=0; //将起点入队 queue[0].y=0; bfs(); i=j=4; k=0; queue[k].x=4; queue[k++].y=4; while(i!=0||j!=0) //将从终点到起点的路径保存 { m=i;n=j; i=record[m][n].x; j=record[m][n].y; queue[k].x=i; queue[k++].y=j; } for(i=k-1;i>=0;i--) { printf("(%d, %d)\n",queue[i].x,queue[i].y); } return 0;}
1 0
- POJ 迷宫问题+基础bfs
- POJ 3984-迷宫问题 BFS
- poj 3984 迷宫问题(bfs)
- POJ 3984 迷宫问题 BFS
- poj 3984 迷宫问题 bfs
- POJ 3984 || 迷宫问题 (bfs
- POJ 3984 迷宫问题 BFS
- POJ 3984 迷宫问题(bfs)
- BFS-POJ-3984-迷宫问题
- 迷宫问题 POJ 3984 【BFS】
- POJ 3984 迷宫问题 (BFS)
- POJ 3984:迷宫问题【BFS】
- POJ 3984迷宫问题(BFS)
- poj 3984 迷宫问题 bfs
- POJ 3984:迷宫问题【BFS】
- POJ 3984 迷宫问题 BFS
- POJ 4127: 迷宫问题 BFS
- poj 3984 迷宫问题(bfs)
- 【java项目实战】dom4j解析xml文件,连接Oracle数据库
- 架构设计:系统间通信——提高ActiveMQ工作性能(下)
- 数据库设计三大范式
- LeetCode------Add Digits
- 【C++】复数类
- POJ 迷宫问题+基础bfs
- 第八周项目四-角色有多样武器
- 关于Xcode的错误分析和处理
- Hadoop(二)实现SSH互联
- Sping+ActiveMQ整合
- UVA 11039 Building Designing
- 解决Android页面跳转过程中黑屏时间过长问题
- Oracle 索引 详解
- 畅通工程