对于静态栈其实就是一个记录最后一个元素位置的数组,对于动态栈其实就是一个头插法创建链表,因为比较简单,所以就不过多赘述,在这里简单实现以下:
(一)静态栈
数据结构:
typedef struct Stack
{
int elem[MAXSIZE];
int top;
}StaticStack;
(1)栈的初始化
void InitStack(StaticStack * s)
{
s->top = -1;
}
(2)进栈
void Push(StaticStack *s,int date)
{
if (s->top == MAXSIZE-