走迷宫,递归
来源:互联网 发布:linux装java环境 编辑:程序博客网 时间:2024/05/21 19:31
#include <stdio.h>#define MazeR 5#define MazeC 9int mark[MazeR+2][MazeC+2];struct offsetNode { int up; int left; char *dir;} move[4];int seekPath(int Maze[MazeR+2][MazeC+2], int s_x, int s_y, int e_x ,int e_y);int main(void){ int Maze[MazeR+2][MazeC+2]={ {1,1,1,1,1,1,1,1,1,1,1}, {1,0,1,0,0,0,0,0,0,0,1}, {1,0,1,0,0,1,1,1,1,0,1}, {1,0,1,1,0,1,1,0,0,0,1}, {1,0,1,0,0,1,1,0,1,1,1}, {1,0,0,0,1,0,1,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1} }; int i,j; move[0].up=1;move[0].left=0;move[0].dir="Down"; move[1].up=0;move[1].left=1;move[1].dir="Right"; move[2].up=-1;move[2].left=0;move[2].dir="Up"; move[3].up=0;move[3].left=-1;move[3].dir="Left"; for(i=0;i<MazeR+2;i++) for(j=0;j<MazeC+2;j++){ mark[i][j]=0; } mark[1][1]=1; seekPath(Maze,1,1,5,9); return 0; }int seekPath(int Maze[MazeR+2][MazeC+2], int s_x, int s_y, int e_x ,int e_y){ int i,x,y; char *d=NULL; if(s_x==e_x && s_y==e_y) return 1; for(i=0;i<4;i++){ x=s_x+move[i].up; y=s_y+move[i].left; d=move[i].dir; if((Maze[x][y]==0) && (mark[x][y]==0)) { mark[x][y]=1; if(seekPath(Maze,x,y,e_x,e_y)) { printf("(%d,%d),%s\n",x,y,d); return 1; } } } if(s_x==1 && s_y==1) printf("No avaible Path\n"); return 0;}
阅读全文
0 0
- 走迷宫,递归
- 老鼠走迷宫----------递归问题
- 老鼠走迷宫递归算法
- 经典递归问题--走迷宫--POJ 3984
- 算法:Python递归实现走迷宫
- 【c++】利用递归实现走迷宫
- caioj1037:递归7(走迷宫)
- 1037: 递归7(走迷宫)
- 递归与非递归实现走迷宫算法
- 走迷宫
- 走迷宫
- 走迷宫
- 走迷宫
- 走迷宫
- 走迷宫
- 走迷宫
- 走迷宫
- 走迷宫
- 2017.9.24开学第四周周总结
- 【Java】の基础——几种线程同步方式
- 什么是流
- 遍历python字典几种方法
- 【Spark Java API】broadcast、accumulator
- 走迷宫,递归
- Android性能优化之app启动时间测量
- Linux(CentOS 7.3)使用yum安装MySQL详细步骤
- UE4蓝图制作场景小地图
- JSON的几种拼接方式
- 简易教务管理系统
- 17.09.24 牛客网练习总结:二维数组中的查找,替换空格
- 盒子常见margin和padding问题详解
- 前端知识整理之网页布局