使用模板类实现顺序栈
时间: 2024-09-18 21:16:10 浏览: 24
使用模板类来实现顺序栈是一种常见的数据结构设计方法,它允许对不同类型的数据进行操作。以下是使用模板类实现顺序栈的基本步骤:
1. 定义模板类`Stack`,包含基本的操作元素(如元素类型`T`),以及栈顶指针`top`和实际存储元素的数组`data`。
```cpp
template <typename T>
class Stack {
private:
int top;
T data[100]; // 假设栈的最大容量为100,可根据实际情况调整
public:
Stack() : top(-1) {} // 构造函数,初始化栈顶指针为-1表示空栈
bool isEmpty() const { return top == -1; }
bool isFull() const { return top == 99; } // 如果接近最大容量,视为已满
void push(const T& value) { if (!isFull()) top++; data[top] = value; }
T pop() { if (isEmpty()) throw std::out_of_range("Stack is empty"); T result = data[top]; top--; return result; }
T peek() const { if (isEmpty()) throw std::out_of_range("Stack is empty"); return data[top]; }
};
```
在这个例子中,`push()`将元素压入栈,`pop()`弹出栈顶元素并返回,`peek()`查看栈顶元素但不改变栈的状态。注意这里使用了异常处理机制,当试图从空栈中弹出元素时抛出异常。