平常写一写,就当作练习吧。
typedef int ElemType;
typedef struct
{
ElemType elem[MAXSIZE];
int top;
}SeqStack;
// 栈初始化
void Init_SeqStack(SeqStack *s)
{
s->top = -1;
}
// 判断栈是否空
int Empty_SeqStack(SeqStack)
{
if (s->top == -1) return true;
else
{
return true;
}
}
// 入栈
int Push_SeqStack(SeqStack *s)
{
if (s->top == MAXSIZE -1) return OVERFLOW; // 上溢
else
{
s->top++; // 栈顶指针加1
s->elem[s->top] = x; // 存入栈顶值
return OK;
}
}
// 出栈
int Pop_SeqStack(SeqStack *s, ElemType *y)
{
if (Empty_SeqStack(s)) return OVERFLOW; // 空栈
else
{
*y = s->elem[s->top]; // 取得栈顶值
s->top--; // 栈顶指针减1
return OK;
}
}
// 取栈顶元素
ElemType Top_SeqStack(SeqStack *s)
{
if (Empty_SeqStack(s)) return OVERFLOW; // 空栈
else
{
return (s->elem[s->top]);
}
}