数据结构与算法基础–第05周08–3.3栈的表示和实现4–3.3.2栈的顺序表示和实现3–顺序栈操作2
Status StackEmpty(SqStack S){
// 若栈为空,返回 TRUE;
// 若栈不为空,则返回 FALSE
if(S.top == S.base){
return TRUE;
}
else{
return FALSE;
}
}
int StackLength(SqStack S){
return (S.top - S.base);
}
int ClearStack(SqStack S){
if(S.base){
S.top = S.base;
}
return OK;
}
Status DestroyStack(SqStack& S){
if(S.base){
delete S.base;
S.stacksize = 0;
S.base = NULL;
S.top = NULL;
}
return OK;
}
(1) 判断是否栈满,若满则出错(上溢)
(2) 元素 e 压入栈顶
(3) 栈顶指针加 1
Status Push(SqStack& S, SElemType e){
// 判断栈满
if((S.top - S.base) == S.stacksize)
return ERROR;
*S.top ++ = e;
// 等价于
// *S.top = e;
// S.top++;
return OK;
}