#include #define STACKSIZE 50 //初始栈的大小
#define STACKSIZE_increase 10 //增加栈的空间
typedef struct Sqstack //定义栈
{
char *base;
char *top;
int stacksize;
}Sqstack;
Sqstack S;
void Initstack()//创建栈
{
S.base=(char*)malloc(S.stacksize*sizeof(char));//申请结点
if(!S.base)exit(0);
S.top=S.base;
S.stacksize=STACKSIZE;
}
void PUSH(char e)//元素入栈
{
if (S.top-S.base==S.stacksize)
{
S.base=(char*)realloc(S.base,(S.stacksize+STACKSIZE_increase)*sizeof(char));//重新申请空间
if(!S.base)exit(0);
S.top=S.stacksize+S.base;
S.stacksize+=STACKSIZE_increase;
}
*S.top++=e;
}
char gettop()//获得栈顶元素
{
return *(S.top-1);
}
v