队列求迷宫问题
来源:互联网 发布:vb 判断文件是否存在 编辑:程序博客网 时间:2024/05/22 10:35
队列求迷宫问题
/*Name: 队列求迷宫问题 Copyright: Author: Date: 14/04/17 15:05Description: 希望以后能参考的*/#include<iostream>#include<stdlib.h>using namespace std;typedef struct {int i;int j;int pre;} box;typedef struct{box data[50];int front,rear;}student;int mg[5][5]={//迷宫中0为可走路径,1为障碍{1,1,1,1,1},{1,0,1,1,1},{1,0,0,0,1},{1,1,1,0,1},{1,1,1,1,1}};void print(student q,int front){int k=front,j;cout<<endl;do{j=k;k=q.data[k].pre;q.data[j].pre=-1;}while(k!=0);cout<<"road is:"<<endl;k=0;while(k<50){if(q.data[k].pre==-1){cout<<q.data[k].i<<q.data[k].j<<endl;}k++;}}bool mypath(int x0,int y0,int m,int n){ student q;int x,y,di,find=0;q.front=q.rear=-1;q.rear++;q.data[q.rear].i=x0;q.data[q.rear].j=y0;q.data[q.rear].pre=-1;mg[x0][y0]=-1;while(q.rear!=q.front&&!find){q.front++;x=q.data[q.front].i;y=q.data[q.front].j;if(x==m&&y==n){find=1; print(q,q.front); return true; } for(di=0;di<4;di++){ switch(di) {case 0:x=q.data[q.front].i;y=q.data[q.front].j-1;break;case 1:x=q.data[q.front].i+1;y=q.data[q.front].j;break;case 2:x=q.data[q.front].i;y=q.data[q.front].j+1;break;case 3:x=q.data[q.front].i-1;y=q.data[q.front].j;break;}if(mg[x][y]==0){q.rear++;q.data[q.rear].i=x;q.data[q.rear].j=y;q.data[q.rear].pre=q.front;mg[x][y]=-1;} } } return false;}int main(){if(!mypath(1,1,3,3))cout<<"wujie";return 0;}
阅读全文
0 0
- 队列求迷宫问题
- 队列实现迷宫问题
- 队列实现迷宫问题
- DFS求迷宫问题
- 求迷宫通路问题
- 堆栈求迷宫问题
- erl_stack_queue-队列求迷宫最短路径
- 迷宫问题(栈,递归,队列)
- 用队列解迷宫问题
- 回溯法求迷宫问题
- 回溯法求迷宫问题
- 回溯法求迷宫问题
- 迷宫问题求最小路径
- 数据结构:栈和队列-迷宫问题求解
- 队列实现迷宫问题(垃圾版)
- 解决迷宫问题, 栈和队列
- 用循环队列解迷宫问题
- 用栈和队列求解迷宫问题
- Spring中的IOC
- 599. Minimum Index Sum of Two Lists
- 安卓开发菜单挡住标题栏解决办法
- leetcode | Path Sum II
- unity UGUI 2048 控制移动
- 队列求迷宫问题
- jdk之BitSet位运算解析
- 嵌入式实训总结
- bzoj1803: Spoj1487 Query on a tree III
- mybatis配置
- JavaSE重新学习
- 13.折半法(二分法)判断该数是否存在于数组
- PyQt5+python3+pycharm开发环境配置
- nginx源码学习(二)ngx_init_cycle(&init_cycle)函数解析