顺序栈
#define MaxSize 10
typedef struct{
ElemType data[Maxsize];
int top;
}SqStack;
void InitStack(SqStack &s){
s.top=-1;
}
bool StackEmpty(SqStack s){
return (s.top==-1)
}
bool Push(SqStack &s,ElemType &x){
if(s.top==Maxsize-1)
return false;
s.top=s.top+1;
s.data[s.top]=x;
return true;
}
bool Pop(SqStack &s,ElemType &x){
if(s.top==-1)
return false;
x=s.data[s.top];
s.top=s.top-1;
return true;
}
#define MaxSize 10
typedef struct{
ElemType data[Maxsize];
int top0;
int top1;
}ShareStack;
void InitStack(ShareStack &s){
s.top0=-1;
s.top1=Maxsize;
}
链栈
typedef struct Linknode{
Elemtype data;
struct Linknode *next;
}*LinkStack;
参考头插法的单链表进行插入和删除(在表头进行)