找到迷宫的所有解
来源:互联网 发布:ubuntu 卸载docker 编辑:程序博客网 时间:2024/05/21 15:43
本题定义一个七行八列的数组迷宫,为了方便算法实现,在最外围再加上“一堵墙”,然后在初始化时就将人放在M(1,1)的位置
墙赋值为1,走过的路标记为2,未走过的路记为0
往南走,x记为1,y仍是0,以此类推
代码实现如下:
#include<stdio.h>#include<stdlib.h>#define rol 7//定义迷宫的行#define col 8//定义迷宫的列int Move[4][2] = { { 1,0 },{ 0,1 },{ -1,0 },{ 0,-1 } };//定义四个方向存入二维数组,顺序为:南东北西int M[rol + 2][col + 2] = { { 1,1,1,1,1,1,1,1,1,1 },{ 1,0,0,1,1,1,1,1,1,1 },{ 1,0,0,0,1,1,1,1,1,1 },{ 1,0,0,0,0,0,0,1,1,1 },{ 1,0,1,0,0,1,0,1,1,1 },{ 1,0,0,1,0,1,0,0,0,1 },{ 1,1,1,1,0,0,0,1,0,1 },{ 1,1,1,1,1,1,0,0,0,1 },{ 1,1,1,1,1,1,1,1,1,1 } };//用最笨的办法直接给迷宫赋值//int t[rol + 2][col + 2] = { 0 };//定义一个和迷宫M一样大的迷宫用来存储该结点是否走过,初始化为0,走过的结点赋1int stack[100][2];//定义一个存放路径的栈int top = -1;//定义一个栈顶指针topint cnt = 0;//输出void Print() {int i;printf("第%d组解:\n", ++cnt);printf("(%d,%d)", 1, 1);for (i = 0; i < top + 1; i++) {printf("->(%d,%d)", stack[i][0], stack[i][1]);}printf("\n");}void Maze(int x, int y) {int a = 0, b = 0;if (x == rol&&y == col) {Print();//return 1;//当走到出口时,返回1}else {for (int i = 0; i < 4; i++) {//遍历四个方向a = x + Move[i][0];b = y + Move[i][1];//给a,b赋值if (!M[a][b]) {//如果M[a][b]能走并且没有被走过M[a][b] = 2;//此时给M[a][b]赋2记录此处被走过//入栈top++;stack[top][0] = a;stack[top][1] = b;Maze(a, b);//并且在此处进行调用,走到下一个节点位置M[a][b] = 0;//抹掉标记top--;//出栈}}}}int main(void) {int i, j;stack[0][0] = stack[0][1] = 1;//初始化栈底元素为1,1,即从1,1开始这个节点开始跑for (i = 0; i < rol + 2; i++) {for (j = 0; j < col + 2; j++) {printf("%2d", M[i][j]);}printf("\n");}M[1][1] = 1;Maze(1, 1);return 0;}
阅读全文
0 0
- 找到迷宫的所有解
- 找到迷宫一条路的解
- 找到迷宫的所有路径和最短路径-深度搜索
- 走迷宫问题(求出所有的可能的解)
- 栈--求迷宫所有解
- 找到字符串的所有字串
- java递归解迷宫 求所有解
- 用递归函数求出迷宫所有解
- ubuntu找到支持的所有的字符集
- 找到一个单词的所有相似单词
- onCreateView 里面把所有的view找到
- 8.2.1 找到所有的键盘设备
- 迷宫问题一 找到迷宫的一条路径(DFS+回溯)
- 求取迷宫所有路径
- 改进的走迷宫,可算出所有可行的路径
- 迷宫的解
- 输出迷宫的所有路径和最短路径
- 找到当前所有逻辑驱动器的根驱动器路径
- js继承
- 【MyEclipse】MyEclipse 2015配置WebLogic
- exec 与 eval
- IDEA向hadoop集群提交作业
- 第八课 tensorflow numpy_input_fn 以及队列性质
- 找到迷宫的所有解
- linux安装python3.5
- linux-Centos 下实战应用gogs-git服务安装
- 使用VM虚拟机最小化安装CentOS7连接网络
- Ubuntu 16.04 利用qemu模拟ARM开发板
- 静态链表Test1
- Oracle sql性能优化2
- IDEA常见使用命令
- FFT/NTT 总结(HDU 4656)