实现 step1/SeqStack.cpp 中的SS_IsFull、SS_IsEmpty、SS_Length、SS_Push和SS_Pop五个操作函数,以实现判断栈是否为满、是否为空、求栈元素个数、进栈和出栈等功能。
时间: 2024-05-05 21:17:13 浏览: 19
以下是SeqStack.cpp中SS_IsFull、SS_IsEmpty、SS_Length、SS_Push和SS_Pop五个操作函数的实现:
```
#include "SeqStack.h"
// 判断栈是否为满
bool SS_IsFull(SeqStack S)
{
return S.top == MAXSIZE - 1;
}
// 判断栈是否为空
bool SS_IsEmpty(SeqStack S)
{
return S.top == -1;
}
// 求栈元素个数
int SS_Length(SeqStack S)
{
return S.top + 1;
}
// 进栈
bool SS_Push(SeqStack& S, SElemType e)
{
if (SS_IsFull(S)) {
return false;
}
S.data[++S.top] = e;
return true;
}
// 出栈
bool SS_Pop(SeqStack& S, SElemType& e)
{
if (SS_IsEmpty(S)) {
return false;
}
e = S.data[S.top--];
return true;
}
```
其中,SS_IsFull和SS_IsEmpty函数分别判断栈是否为满和是否为空,返回true或false。SS_Length函数返回栈中元素个数,即栈顶指针top加1。SS_Push函数将元素e进栈,首先判断栈是否为满,若为满则返回false,否则将元素e入栈,并将栈顶指针top加1。SS_Pop函数将栈顶元素出栈,并将其赋值给参数e,首先判断栈是否为空,若为空则返回false,否则将栈顶元素弹出,并将栈顶指针top减1。