实现顺序栈的基本操作主函数
时间: 2023-12-18 21:25:41 浏览: 38
顺序栈是一种基于数组实现的栈结构,它的特点是后进先出(LIFO)。下面是顺序栈的基本操作的主函数示例:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义栈的最大容量
typedef struct {
int data[MAXSIZE]; // 栈的数据存储数组
int top; // 栈顶指针
} SqStack;
// 初始化栈
void InitStack(SqStack &S) {
S.top = -1; // 栈顶指针初始化为-1
}
// 判断栈是否为空
bool IsEmpty(SqStack S) {
return (S.top == -1);
}
// 入栈操作
bool Push(SqStack &S, int x) {
if (S.top == MAXSIZE - 1) {
cout << "栈已满,无法入栈!" << endl;
return false;
}
S.data[++S.top] = x; // 栈顶指针加1,将元素x入栈
return true;
}
// 出栈操作
bool Pop(SqStack &S, int &x) {
if (IsEmpty(S)) {
cout << "栈为空,无法出栈!" << endl;
return false;
}
x = S.data[S.top--]; // 将栈顶元素赋值给x,栈顶指针减1
return true;
}
// 获取栈顶元素
bool GetTop(SqStack S, int &x) {
if (IsEmpty(S)) {
cout << "栈为空,无栈顶元素!" << endl;
return false;
}
x = S.data[S.top]; // 将栈顶元素赋值给x
return true;
}
int main() {
SqStack S;
InitStack(S);
// 入栈操作示例
Push(S, 1);
Push(S, 2);
Push(S, 3);
// 出栈操作示例
int x;
Pop(S, x);
cout << "出栈元素:" << x << endl;
// 获取栈顶元素示例
GetTop(S, x);
cout << "栈顶元素:" << x << endl;
return 0;
}
```