顺序栈初始化的主函数怎么写
时间: 2024-09-06 13:00:30 浏览: 33
顺序栈入栈出栈实现源码
5星 · 资源好评率100%
顺序栈(也称为数组栈)是一种基础的数据结构,它通过动态数组实现。在C++等语言中,我们通常会包含一些必要的头文件,比如`iostream`用于输入输出,`vector`用于管理动态数组。以下是顺序栈初始化的一个简单示例:
```cpp
#include <iostream>
#include <vector>
// 定义栈的模板,T是元素类型
template <typename T>
class Stack {
private:
std::vector<T> elements; // 动态数组作为栈的基础
public:
// 初始化函数
Stack() { } // 空栈构造
// 添加元素到栈顶
void push(const T& value) {
elements.push_back(value);
}
// 删除并返回栈顶元素(若为空则抛异常)
T pop() {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
T top = elements.back();
elements.pop_back();
return top;
}
// 检查栈是否为空
bool isEmpty() const {
return elements.empty();
}
};
int main() {
Stack<int> myStack;
// 初始化时不需要做特别的操作,可以直接使用
try {
myStack.push(10);
myStack.push(20);
myStack.push(30);
while (!myStack.isEmpty()) {
int topValue = myStack.pop();
std::cout << "Popped: " << topValue << '\n';
}
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << '\n';
}
return 0;
}
```
在这个例子中,`main`函数创建了一个整数类型的栈`myStack`,然后依次添加了一些元素,并在循环中弹出并打印它们。注意,栈操作通常是在堆栈溢出之前完成的,这里为了简化演示未加入错误处理。
阅读全文