实验要求:
简单地运用栈操作实现迷宫求解
代码如下:
#include <stdio.h>
#define MaxSize 100
#define M 8
#define N 8
//设置迷宫
int mg[M+2][N+2]=
{
{0,0,0,0,0,0,0,0,0,0},
{0,1,1,0,1,1,1,0,1,0},
{0,1,1,0,1,1,1,0,1,0},
{0,1,1,1,1,0,0,1,1,0},
{0,1,0,0,0,1,1,1,1,0},
{0,1,1,1,0,1,1,1,1,0},
{0,1,0,1,1,1,0,1,1,0},
{0,1,0,0,0,1,0,0,1,0},
{0,0,1,1,1,1,0,1,1,0},
{0,0,0,0,0,0,0,0,0,0}
};
//Box结构
typedef struct
{
int i;
int j;
int di;
}Box;
//栈结构
typedef struct
{
Box data[MaxSize];
int top;
}Stack;
//迷宫求解
int mgpath(int xi,int yi,int xe,int ye)
{
int i,j,k,di,find;
Stack s;
s.top=-1;
s.top++; //初始方块进栈
s.data[s.top].i=xi;
s.data[s.top].j=yi;
s.data[s.top].di=-1;
mg[xi][yi]=3;
while (s