用C++编写一个后进先出堆栈类stack,数据为字符
时间: 2024-12-14 17:14:32 浏览: 4
在C++中,你可以使用`std::stack`容器来自定义一个后进先出(LIFO,Last In First Out)堆栈,存储的数据类型为字符。这里是一个简单的示例:
```cpp
#include <iostream>
#include <stack> // 包含标准库中的堆栈模板
// 定义一个字符类型的栈
class CharStack {
private:
std::stack<char> s; // 使用std::stack作为底层数据结构
public:
// 压栈操作
void push(char item) {
s.push(item);
}
// 弹栈操作
char pop() {
if (s.empty()) {
throw std::runtime_error("Stack is empty.");
}
return s.top(); // 返回顶部元素并移除
}
// 查看栈顶元素但不移除
char top() const {
if (s.empty()) {
throw std::runtime_error("Stack is empty.");
}
return s.top();
}
// 判断堆栈是否为空
bool isEmpty() const {
return s.empty();
}
// 清空堆栈
void clear() {
s.clear();
}
};
int main() {
CharStack stack;
stack.push('a');
stack.push('b');
stack.push('c');
std::cout << "Top element: " << stack.top() << std::endl; // 输出 'c'
stack.pop();
while (!stack.isEmpty()) {
std::cout << "Popped: " << stack.pop() << std::endl; // 输出 'b', 'a'
}
return 0;
}
```
阅读全文