stack.c

来自「编译原理 做一个后缀翻译 还有抽象堆栈机代码翻译」· C语言 代码 · 共 36 行

C
36
字号
#include "stack.h"

Status InitStack(SqStack *s)
{  s->base=(Elemtype *)malloc(STACK_INIT_SIZE*sizeof(Elemtype));
   if(s->base==0) return ERROR;
   s->top=s->base;
   //*(s->base)=0;
   s->stacksize=STACK_INIT_SIZE;
   return OK;
}
Status GetTop(SqStack s,Elemtype *e)
{
       if(s.top==s.base) return ERROR;
       *e=*(s.top-1);
       return OK;
}
Status Push(SqStack *s,Elemtype e)
{
       if(s->top-s->base>=s->stacksize) return ERROR;
       *(s->top)=e;
       s->top=s->top+1;
       return OK;
}
Status Pop(SqStack *s,Elemtype *e)
{
       if(s->top==s->base) return ERROR;
       	s->top=s->top-1;
       *e=*(s->top);
       return OK;
}

Status DestroyStack(SqStack *s)
{ free(s->base);
  return OK;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?