1、定义
typedef struct SeqStack
{
ElemType *base;//栈空间
size_t capacity;
int top;//栈顶指针
}SeqStack;
2、判空、判满
bool SeqStackIsEmpty(SeqStack *pst)
{
assert(pst != NULL);
return pst->top == 0;
}
bool SeqStackIsFull(SeqStack *pst)
{
assert(pst != NULL);
return pst->top >= pst->capacity;
}
3、初始化
void SeqStackInit(SeqStack *pst)
{
assert(pst != NULL);
pst->capacity = STACK_DEFAULT_SIZE;
pst->base = (ElemType*)malloc(sizeof(ElemType)* pst->capacity);
pst->top = 0;
}
4、插入元素
void SeqStackPush(SeqStack *pst, ElemType x)
{
assert(pst != NULL);
if (SeqStackIsFull(pst))
{
printf("栈已满,%d不能插入\n");
return;
}
pst->base[pst->top++] = x;
}
5、出栈
void SeqStackPop(SeqStack *pst)
{
assert(pst != NULL);
if (SeqStackIsEmpty(pst))
{
printf("