c++程序顺序表实现栈,将栈整个输出
时间: 2024-11-21 21:02:07 浏览: 11
在C++中,你可以使用数组(类似于顺序表)来实现一个基本的栈数据结构。栈是一种后进先出(LIFO,Last In First Out)的数据结构,这意味着最后插入的元素会被最先删除。以下是使用数组实现一个简单栈的示例:
```cpp
#include <iostream>
// 定义栈的大小和类型
const int MAX_SIZE = 10;
using Stack = int[MAX_SIZE]; // 使用整型数组作为栈
Stack stack; // 创建栈实例
int top = -1; // 栈顶指针初始化为-1,表示空栈
// 入栈操作(push)
void push(int value) {
if (top < MAX_SIZE - 1) {
stack[++top] = value; // 如果还有空间,将元素放在栈顶并更新指针
std::cout << "Pushed element: " << value << std::endl;
} else {
std::cout << "Stack is full, cannot push." << std::endl;
}
}
// 出栈操作(pop)
int pop() {
if (top >= 0) {
return stack[top--]; // 返回并移除栈顶元素,然后减小指针
std::cout << "Popped element: " << stack[top + 1] << std::endl; // 输出已弹出的值,这里因为是数组索引,所以加1
} else {
std::cout << "Stack is empty, cannot pop." << std::endl;
return -1; // 返回错误码表示栈为空
}
}
// 主函数演示栈操作
int main() {
push(1);
push(2);
push(3);
while (!isEmpty()) { // 检查栈是否为空
std::cout << "Top element: " << pop() << std::endl;
}
return 0;
}
```
在这个例子中,`push()`方法用于入栈,`pop()`方法用于出栈,`main()`函数展示了如何使用这两个方法以及栈的遍历。注意,这个简单的实现没有包含检查溢出(超过栈容量)的机制,实际项目中应加入这样的检查。
阅读全文