这个主要是练习栈的使用,当时编了好长时间呢。
以一个mXn的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的额迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
代码如下:
#include "iostream"
using namespace std;
int east=1;
int sou=2;
int west=3;
int nor=4;
int migong[11][10]={
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 0, 1, 0, 0, 0, 1, 0, 1,
1, 0, 0, 1, 0, 0, 0, 1, 0, 1,
1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
1, 0, 1, 1, 1, 0, 0, 1, 0, 1,
1, 0, 0, 0, 1, 0, 0, 0, 0, 1,
1, 0, 1, 0, 0, 0, 1, 0, 1, 1,
1, 0, 1, 1, 1, 1, 0, 0, 1, 1,
1, 1, 1, 0, 0, 0, 1, 0, 1, 1,
1, 1, 1, 1, 0, 0, 0, 0, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
class point
{
public:
int oder;
int x,y;
};
class path
{
public:
point xy;
int dir;
};
class stack
{
public:
path *base;
path *top;
int size;
};
//栈函数
int newstack(stack &s)
{
s.base=(path*)malloc(50*sizeof(path));
s.top=s.base;
s.size=50;
return 0;
}
int push(stack &