栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
定义一个顺序存储的栈
typedef int ElementType;
typedef struct
{
ElementType *array; //存放栈数据
int top; //栈顶
int capacity; //容量
} SeqStack;
创建栈
SeqStack* createStack(int capacity){
SeqStack *S = (SeqStack *)malloc(sizeof(SeqStack));
S->array = (ElementType *)malloc(sizeof(ElementType) * capacity);
S->top = -1;
S->capacity = capacity;
return S;
}
栈满判断
int full(SeqStack *S){
if (S->top == S->capacity - 1)
return 1;
return 0;
}
栈空判断
int empty(SeqSta