建立顺序栈,实现入栈、出栈、获取栈顶元素操作;使用c++编写
时间: 2023-12-29 21:02:59 浏览: 111
以下是使用 C++ 实现的顺序栈:
```cpp
#include<iostream>
using namespace std;
const int MAXSIZE = 100; // 栈的最大容量
template <typename T>
class SeqStack {
private:
T data[MAXSIZE]; // 存放栈中元素的数组
int top; // 栈顶指针,即栈顶元素下标
public:
SeqStack() {
top = -1; // 初始化栈顶指针为-1
}
bool push(T x) { // 入栈操作
if (top == MAXSIZE - 1) { // 栈满,无法入栈
return false;
}
data[++top] = x; // 栈顶指针先加1,再入栈
return true;
}
bool pop() { // 出栈操作
if (top == -1) { // 栈空,无法出栈
return false;
}
top--; // 栈顶指针减1,相当于出栈
return true;
}
T get_top() { // 获取栈顶元素
if (top == -1) { // 栈空,无法获取栈顶元素
return NULL;
}
return data[top]; // 直接返回栈顶元素
}
};
int main() {
SeqStack<int> s; // 声明一个整型顺序栈
s.push(1);
s.push(2);
s.push(3);
cout << s.get_top() << endl; // 输出栈顶元素,即3
s.pop();
cout << s.get_top() << endl; // 输出栈顶元素,即2
s.pop();
cout << s.get_top() << endl; // 输出栈顶元素,即1
return 0;
}
```
注意,此处使用了模板类,可以实现不同类型的元素入栈。
阅读全文