顺序栈
顺序栈的定义
#define MaxSize 10
typedef struct{
ElemType data[MaxSize];
int top;
}SqStack;
#define MaxSize 10
typedef struct{
ElemType data[MaxSize];
int length;
}SqList;
初始化栈
void InitStack(SqStack &S){
S.top = -1;
}
void InitList(SqList &L){
for(int i=0;i<MaxSize;i++)
L.data[i] = 0;
L.length = 0;
}
进栈操作
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;
}
读栈顶元素
bool GetTop(SqStack S,ElemType &x){
if(S.top == -1)
return false;
x = S.data[S.top];
return true;
}