#include <stdio.h>
#include <stdlib.h>
#define STACKINCREAMENT 10
#define STACK_INIT_SIZE 100
#define OVERFLOW -2
#define OK 1
#define ERROR 0
typedef int status;
typedef char SElemtype;
typedef struct
{
SElemtype *base;
SElemtype *top;
status stacksize;
}sqstack;
//初始化栈
status Init(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;
}
//压栈
status push(sqstack *s, SElemtype e)
{
if(s->top - s->base >= s->stacksize)
{
s->base = (SElemtype *)realloc(s->base, (s->stacksize + STACKINCREAMENT) * sizeof(SElemtype));
if(!s->base)
exit(OVERFLOW);
s->top = s->base + s->stacksi
数据结构之---C语言实现括号匹配(栈实现)
最新推荐文章于 2022-09-29 22:05:00 发布