用c++语言写出一个顺序栈
时间: 2024-10-14 09:15:50 浏览: 40
在C++中,我们可以使用数组实现一个简单的顺序栈(Sequential Stack)。下面是一个基础版本的顺序栈实现:
```cpp
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 栈的最大容量
class Stack {
private:
int top; // 栈顶指针
int data[MAX_SIZE]; // 存储数据的数组
public:
Stack() : top(-1) {} // 构造函数,初始化栈顶为-1表示空栈
bool isEmpty() { return top == -1; } // 判断栈是否为空
bool isFull() { return top == MAX_SIZE - 1; } // 判断栈是否已满
void push(int value) { // 入栈操作
if (isFull()) {
cout << "Stack overflow!" << endl;
return;
}
data[++top] = value;
}
int pop() { // 出栈操作
if (isEmpty()) {
cout << "Stack underflow!" << endl;
return -1; // 返回非法值表示出错
}
return data[top--];
}
int peek() { // 查看栈顶元素但不移除
if (isEmpty()) {
cout << "Stack is empty." << endl;
return -1;
}
return data[top];
}
};
int main() {
Stack s;
s.push(1);
s.push(2);
s.push(3);
cout << "Top element is: " << s.peek() << endl;
cout << "Popped element is: " << s.pop() << endl;
if (s.isEmpty()) {
cout << "Stack is now empty." << endl;
}
return 0;
}
```
这个顺序栈实现了基本的入栈(push)、出栈(pop)和查看栈顶元素(peek)操作,但在实际应用中,你可能需要考虑更复杂的边界检查和异常处理。
阅读全文