用C++代码实现一个栈并完成以下要求: (1) 输入0123入栈后再出栈并打印输出; (2) 对栈顶元素出栈后输出剩余元素并打印输出; (3) 判断此时栈是否为空; (4) 判断此时栈的长度; (5) 判断此时栈顶元素大小。
时间: 2024-11-05 13:34:14 浏览: 20
用C++实现栈的创建、输出、入栈、出栈
5星 · 资源好评率100%
在C++中,我们可以使用`vector`或自定义数组来实现一个简单的线性栈(Stack)。这里是一个基本的例子:
```cpp
#include <iostream>
#include <stack>
class Stack {
private:
std::stack<int> elements;
public:
// 入栈操作
void push(int value) {
elements.push(value);
}
// 出栈并打印操作
void pop_and_print() {
if (!elements.empty()) {
int top_value = elements.top();
elements.pop();
std::cout << "Popped: " << top_value << std::endl;
} else {
std::cout << "Stack is empty!" << std::endl;
}
}
// 输出剩余元素
void print_remaining() {
if (elements.empty()) {
std::cout << "Stack is empty." << std::endl;
} else {
std::cout << "Remaining stack elements: ";
while (!elements.empty()) {
std::cout << elements.top() << " ";
elements.pop();
}
std::cout << std::endl;
}
}
// 判断栈是否为空
bool isEmpty() {
return elements.empty();
}
// 获取栈长度
size_t getLength() {
return elements.size();
}
// 判断栈顶元素大小
int peek() const {
if (!isEmpty()) {
return elements.top();
} else {
throw std::runtime_error("Stack is empty");
}
}
};
int main() {
Stack s;
s.push(0);
s.push(1);
s.push(2);
s.push(3);
// 操作1:入栈并打印
s.pop_and_print();
// 操作2:输出剩余元素
s.print_remaining();
// 检查栈状态
std::cout << "Is the stack empty? " << (s.isEmpty() ? "Yes" : "No") << std::endl;
std::cout << "Stack length: " << s.getLength() << std::endl;
// 操作3:检查栈顶元素
try {
std::cout << "Top element: " << s.peek() << std::endl;
} catch (const std::exception& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
```
在这个例子中,我们创建了一个`Stack`类,并实现了所需的五个功能。当你运行这个程序时,它会按照你提供的要求执行相应的操作。
阅读全文