用C++写出顺序栈的入栈和出栈算法
时间: 2024-10-19 13:07:29 浏览: 32
在C++中,我们可以使用数组或动态分配的内存来实现基本的顺序栈(也称为简单堆栈)。这里是一个简单的顺序栈的入栈(push)和出栈(pop)操作的示例:
```cpp
#include <iostream>
// 定义栈的容量和当前大小
#define MAX_SIZE 100
int top = -1; // 栈顶指针初始为-1表示栈为空
class Stack {
private:
int stack[MAX_SIZE]; // 用于存储元素的数组
public:
// 入栈操作 (Push)
void push(int value) {
if (top >= MAX_SIZE - 1) { // 检查是否已满
std::cout << "Stack overflow!" << std::endl;
return;
}
stack[++top] = value; // 当栈不满时,将值存入并更新栈顶指针
std::cout << "Element " << value << " pushed to the stack." << std::endl;
}
// 出栈操作 (Pop)
int pop() {
if (top == -1) { // 检查是否为空
std::cout << "Stack underflow!" << std::endl;
return -1; // 返回错误标识
}
int popped_value = stack[top--]; // 取出栈顶元素并降序栈顶指针
std::cout << "Popped element: " << popped_value << std::endl;
return popped_value;
}
};
int main() {
Stack s;
s.push(1);
s.push(2);
s.push(3);
s.pop();
s.pop();
return 0;
}
```
在这个例子中,`push`函数用于向栈内添加元素,而`pop`函数则移除并返回栈顶的元素。注意,这个实现并没有处理特殊情况,如用户试图从空栈中弹出元素或尝试压入超过栈容量的元素。
阅读全文