顺序栈的实现数据结构完整代码
时间: 2024-11-22 20:23:13 浏览: 37
顺序栈是一种基于数组实现的基础数据结构,它遵循后进先出(LIFO,Last In First Out)原则。下面是使用C++实现的一个基本顺序栈的例子:
```cpp
#include <iostream>
class Stack {
private:
static const int MAX_SIZE = 100; // 栈的最大容量
int top; // 栈顶指针
int data[MAX_SIZE]; // 存储栈元素的数组
public:
// 构造函数,初始化栈为空
Stack() : top(-1) {}
// 判断栈是否为空
bool isEmpty() { return top == -1; }
// 判断栈是否已满
bool isFull() { return top == MAX_SIZE - 1; }
// 入栈操作
void push(int value) {
if (isFull()) {
std::cout << "Stack overflow.\n";
return;
}
data[++top] = value;
}
// 出栈操作
int pop() {
if (isEmpty()) {
std::cout << "Stack underflow.\n";
return -1;
}
return data[top--];
}
// 查看栈顶元素但不移除
int peek() {
if (isEmpty()) {
std::cout << "Stack is empty.\n";
return -1;
}
return data[top];
}
};
int main() {
Stack s;
s.push(1);
s.push(2);
s.push(3);
std::cout << "Top element: " << s.peek() << "\n"; // 输出 3
std::cout << "Popped element: " << s.pop() << "\n"; // 输出并移除 3
std::cout << "Popped element: " << s.pop() << "\n"; // 输出并移除 2
return 0;
}
```
这个顺序栈实现了基本的入栈、出栈和查看栈顶元素的操作。当你尝试出栈或查看栈顶元素而栈为空时,会返回特定的错误信息。
阅读全文
相关推荐
















