本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。
一方面用于学习记录与分享,
另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。
如有侵权,请留言作删文处理。
课程视频链接:
数据结构与算法基础–第05周08–3.3栈的表示和实现4–3.3.2栈的顺序表示和实现3–顺序栈操作2
📚 【Week05】08_顺序栈的操作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;
}