C++1. 用代码实现一个栈并完成以下要求: (1) 输入0123入栈后再出栈并打印输出; (2) 对栈顶元素出栈后输出剩余元素并打印输出; (3) 判断此时栈是否为空; (4) 判断此时栈的长度; (5) 判断此时栈顶元素大小。
时间: 2024-11-03 19:22:23 浏览: 27
在C++中,我们可以使用`std::stack`容器来实现一个基本的栈数据结构。下面是一个简单的实现满足上述要求:
```cpp
#include <iostream>
#include <stack>
class MyStack {
private:
std::stack<int> stack; // 使用默认整数类型
public:
// 入栈操作
void push(int value) {
stack.push(value);
}
// 出栈并打印
void pop_and_print() {
if (!isEmpty()) { // 判断栈是否为空
int top = stack.top(); // 获取栈顶元素
stack.pop(); // 出栈
std::cout << "出栈的元素: " << top << std::endl;
} else {
std::cout << "栈已空,无法出栈。\n";
}
}
// 输出剩余元素
void print_remaining() {
if (isEmpty()) {
std::cout << "栈为空,无剩余元素。\n";
} else {
std::cout << "当前栈中剩余元素: ";
while (!stack.empty()) {
std::cout << stack.top() << " ";
stack.pop();
}
std::cout << "\n";
}
}
// 判断栈是否为空
bool isEmpty() const {
return stack.empty();
}
// 判断栈的长度
size_t getLength() const {
return stack.size();
}
// 判断栈顶元素
int getTopElement() const {
if (!isEmpty()) {
return stack.top();
} else {
throw std::runtime_error("栈为空,无法获取栈顶元素");
}
}
};
int main() {
MyStack mystack;
// 入栈
mystack.push(0);
mystack.push(1);
mystack.push(2);
mystack.push(3);
// 打印并出栈
mystack.pop_and_print();
// 输出剩余元素
mystack.print_remaining();
// 判断状态
std::cout << "栈是否为空: " << (mystack.isEmpty() ? "是" : "否") << std::endl;
std::cout << "栈的长度: " << mystack.getLength() << std::endl;
std::cout << "栈顶元素: " << mystack.getTopElement() << std::endl;
return 0;
}
```
当你运行这个程序,你会看到栈的操作结果以及各个状态信息。
阅读全文