1++.cpp
方法来源 https://blog.csdn.net/zhouchenghao123/article/details/83626222
博主 :ZAX1 ,博客:用栈解决迷宫问题(输出所有路径和最短路径)
//【DFS】 用 栈 求迷宫问题的所有路径和最短路径
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
#define M 4//迷宫大小和出口位置
#define N 4
#define MaxSize 100//规定栈空间最大是100
int mg[M+2][N+2]={// 1 障碍,0 可走点,-1已走过点
{1,1,1,1,1,1},
{1,0,0,0,1,1},
{1,0,1,0,0,1},
{1,0,0,0,1,1},
{1,1,0,0,0,1},
{1,1,1,1,1,1}
};
struct migong{
int i;
int j;
int di; //记录方向
}Stack[MaxSize],Path[MaxSize];//栈和最短路径
int top=-1;
int count=1;//计步君
int minlen=MaxSize;//最短长度
void mgpath(){
int i,j,di,find,k;// i,j表示当前位置,di为方向,find为是否找到了可走