1、用顺序表实现顺序栈SqStack,栈内数据域为 char类型,实现栈的进栈、出栈、取栈顶元素。
时间: 2024-10-27 22:05:45 浏览: 8
顺序栈入栈出栈实现源码
5星 · 资源好评率100%
在使用顺序表(数组)实现顺序栈(Stack)`SqStack`,用于存储字符类型的元素时,我们可以按照栈的基本操作设计相应的函数:
```cpp
class SqStack {
private:
static const int MAX_SIZE = 100; // 栈的最大容量
char data[MAX_SIZE]; // 数据存储区
int top; // 栈顶指针
public:
// 初始化一个空栈
SqStack() : top(-1) {}
// 判断栈是否为空
bool isEmpty() const { return top == -1; }
// 判断栈是否已满
bool isFull() const { return top == MAX_SIZE - 1; }
// 入栈操作
void push(char item) {
if (isFull()) {
throw std::overflow_error("Stack overflow");
}
data[++top] = item;
}
// 出栈操作
char pop() {
if (isEmpty()) {
throw std::runtime_error("Stack underflow");
}
return data[top--];
}
// 取栈顶元素但不删除
char peek() const {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return data[top];
}
};
```
在这个实现中,`push()`操作会检查栈是否已满,`pop()`和`peek()`会检查栈是否为空,如果不符合条件则抛出异常。
阅读全文