用C++ 自定义一个顺序栈的遍历函数,该函数实现的功能为若顺序栈为空,则输出错误,否则输出顺序栈的元素。
时间: 2024-10-22 08:19:37 浏览: 36
在 C++ 中,你可以自定义一个简单的顺序栈(基于数组实现),然后提供一个遍历函数来满足需求。首先,我们定义一个模板类 Stack,用于存储任意类型的元素:
```cpp
template <typename T>
class Stack {
private:
static const size_t MAX_SIZE = 10; // 定义栈的最大容量
T items[MAX_SIZE]; // 存储栈元素的数组
size_t top; // 栈顶指针
public:
Stack() : top(0) {} // 构造函数,初始化栈顶为0
bool isEmpty() const { return top == 0; } // 判断栈是否为空
void push(const T& item) { // 入栈操作
if (top >= MAX_SIZE - 1) {
throw std::overflow_error("Stack overflow");
}
items[top++] = item;
}
T pop() { // 出栈操作
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return items[--top];
}
void traverse() const { // 遍历栈元素
if (isEmpty()) {
std::cerr << "Error: Stack is empty.\n";
return;
}
for (size_t i = 0; i <= top; ++i) {
std::cout << "Element at index " << i << ": " << items[i] << "\n";
}
}
};
```
在这个栈类中,`traverse()` 函数会检查栈是否为空,如果为空则打印错误信息,否则遍历并打印栈内的所有元素。
阅读全文