vc++编写一个简单的栈的顺序存储结构(包括初始化栈,判断空操作,进栈,出栈)
时间: 2024-11-29 22:37:23 浏览: 5
shunxubiao.rar_栈的顺序表_顺序栈,出栈
在C++中,我们可以使用数组来实现一个基本的顺序存储栈(Stack)。这里是一个简单的示例:
```cpp
#include <iostream>
#define MAX_SIZE 10 // 定义栈的最大容量
class Stack {
private:
int top; // 栈顶指针
int data[MAX_SIZE]; // 存储数据的数组
public:
// 初始化栈
Stack() : top(-1) {}
// 判断栈是否为空
bool isEmpty() const {
return top == -1;
}
// 进栈(压入元素)
void push(int value) {
if (top >= MAX_SIZE - 1) {
std::cout << "Stack overflow!" << std::endl;
return;
}
data[++top] = value;
}
// 出栈(弹出元素)
int pop() {
if (isEmpty()) {
std::cout << "Stack underflow!" << std::endl;
return -1; // 返回一个特殊值表示栈空
}
return data[top--];
}
// 查看栈顶元素但不删除(peek)
int peek() const {
if (isEmpty()) {
return -1; // 表示栈空
}
return data[top];
}
};
int main() {
Stack s;
s.push(5);
s.push(10);
while (!s.isEmpty()) {
std::cout << "Top element is: " << s.peek() << std::endl;
s.pop();
}
return 0;
}
```
在这个例子中,我们创建了一个名为`Stack`的类,它有私有的成员变量`top`用于跟踪栈顶位置以及一个动态大小的数据数组。然后提供了`push`、`pop`、`isEmpty`和`peek`方法分别对应于进栈、出栈、判断空栈和查看栈顶元素的操作。在`main`函数里展示了如何使用这个栈。
阅读全文