源程序(带注释)
#include<math.h>
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
typedef struct{ /*定义结构体其中坐标(x,y)搜索方向 dir*/
int x,y;
int dir;
}pos,elem;
typedef struct{ /*定义栈顶指针 t 栈底指针 b 栈的大小 size*/
elem* b,* t;
int size;
}stack;
void initstack(stack* s) /*定义栈的存储空间*/
{ s->b=(elem*)malloc(150*sizeof(elem));
if(s->b){
s->t=s->b;
s->size=150;
return; }
exit(0); }
void push(stack* s,elem* e) /*数据入栈*/
{ *s->t=*e; s->t++; }
void pop(stack* s,elem* e) /*弹出栈中元素*/
{ *e=*--s->t; }
void clearstack(stack* s) /*清空栈中所有元素*/
{ s->t=s->b; }
int stackempty(stack* s) /*判断栈是否为空*/
{ return !(s->t-s->b); }
int destroystack(stack* s) /*销毁栈*/
{ free(s->b);/*由系统回收栈底指针*/