c++顺序栈的代码实现
时间: 2024-09-27 07:00:30 浏览: 35
c++顺序栈的实现demo
C++ 中的顺序栈(也称为数组栈)是一种基本的数据结构,它通过连续的内存空间来存储数据,遵循先进后出(LIFO,Last In First Out)原则。下面是一个简单的顺序栈的线性实现:
```cpp
#include <iostream>
// 定义栈的大小
#define MAX_SIZE 100
class Stack {
private:
int top; // 栈顶指针
int data[MAX_SIZE]; // 存储元素的数组
public:
// 初始化栈为空
Stack() : top(-1) {}
// 判断栈是否为空
bool isEmpty() const {
return top == -1;
}
// 判断栈是否已满
bool isFull() const {
return top == MAX_SIZE - 1;
}
// 入栈操作
void push(int value) {
if (isFull()) {
std::cout << "Stack overflow.\n";
return;
}
top++;
data[top] = value;
}
// 出栈操作
int pop() {
if (isEmpty()) {
std::cout << "Stack underflow.\n";
return -1; // 返回一个错误值表示空栈
}
int poppedValue = data[top];
top--;
return poppedValue;
}
// 查看栈顶元素但不删除
int peek() const {
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 is: " << s.peek() << "\n";
std::cout << "Popped element is: " << s.pop() << "\n";
return 0;
}
```
阅读全文