【问题描述】
以一个 m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路。或得出没有通路的结论
//
base.h
//
------------------- 公用的常量和类型 ----------------------------
#include
<
stdio.h
>
#include
<
malloc.h
>
#include
<
stdlib.h
>
#include
<
string
.h
>
//
函数结果状态代码
#define
TRUE 1
#define
FALSE 0
#define
OK 1
#define
ERROR 0
#define
INFEASIBLE -1
#define
OVERFLOW -2

typedef
int
Status;
//
函数的返回值
typedef
int
DirectiveType;
//
下一个通道方向
#define
RANGE 100
//
迷宫大小

//
~
//
stack.h
#define
STACK_INIT_SIZE 100
#define
STACKINCREMENT 10

//
------------ 栈的顺序存储实现 ------------------------------
typedef
struct
{
int row;
int col;
}
PosType;

typedef
struct
{
int step; //当前位置在路径上的"序号"
PosType seat; //当前的坐标位置
DirectiveType di; //往下一个坐标位置的方向
}
SElemType;

typedef
struct
{
SElemType *base;
SElemType *top;
int stacksize;
}
SqStack;

//
----------------- 栈的基本操作的算法实现 --------------------------------
Status InitStack(SqStack
&
s)
{
s.base = (SElemType * ) malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!s.base) exit(OVERFLOW);
s.top=s.base;
s.stacksize=STACK_INIT_SIZE;
return OK;
}

Status GetTop(SqStack s, SElemType
&
e )
{
if( s.top == s.base) return ERROR;
e = *(s.top-1);
return OK;
}

以一个 m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路。或得出没有通路的结论
【基本要求】
【测试数据】
【实现提示】
使用 穷举法和栈求解
【代码过程】
1。




















2。




































