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 + -
显示快捷键?