#define n 8
#define MAXSIZE 100
int maze[m+2][n+2]={
{1,1,1,1,1,1,1,1,1,1},//四周为1代表围墙,0为可走路径
{1,0,0,1,1,0,0,0,1,1},
{1,0,0,0,0,1,1,1,1,1},
{1,0,1,0,0,0,0,0,1,1},
{1,0,1,1,1,0,0,1,1,1},
{1,1,0,0,1,1,0,0,0,1},
{1,0,1,0,0,0,1,1,0,1},
{1,1,1,1,1,1,1,1,1,1}
}; //入口坐标为(1,1),出口坐标为(6,8)
typedef struct
{
int x,y;/*试探方向*/
}item;
item move[4]={{0,1},{1,0},{0,-1},{-1,0}};
typedef struct/*栈的设计*/
{
int x,y,d; /*纵横坐标及方向*/
}DataType;
typedef struct/*栈*/
{
DataType data[MAXSIZE];
int top;
}SeqStack,*PSeqStack;
PSeqStack Init_SeqStack(void)
{ /*创建一顺序栈,入口参数无,返回一个指向顺序栈的指针,为零表示分配空间失败*/
PSeqStack S;
S=(PSeqStack)malloc(sizeof(SeqStack));
if (S)
S->top= -1;
return S;
}
int Empty_SeqStack(PSeqStack S)
{ /*判断栈是否为空,入口参数:顺序栈,返回值:1表示为空,0表示非空*/ if (S->top== -1)
return 1;
else