c++:1.用代码实现一个栈并完成以下要求: 1)输入0123入栈后再出栈并打印输出; (1) (2) 对栈顶元素出栈后输出剩余元素并打印输出; (3) 判断此时栈是否为空; 4)判断此时栈的长度; (5)判断此时栈顶元素大小。
时间: 2024-11-03 20:21:54 浏览: 25
在C++中,我们可以使用STL库中的stack容器来创建一个简单的栈,并满足上述要求。这里是一个基础的示例代码:
```cpp
#include <iostream>
#include <stack>
// 创建一个模板栈
template <typename T>
class MyStack {
private:
std::stack<T> s;
public:
// 入栈操作
void push(T value) {
s.push(value);
std::cout << "Pushed: " << value << std::endl;
}
// 出栈及打印操作
void popAndPrint() {
if (s.empty()) {
std::cout << "Stack is empty!" << std::endl;
return;
}
T top = s.top();
std::cout << "Popped: " << top << std::endl;
s.pop();
}
// 判断栈是否为空
bool isEmpty() {
return s.empty();
}
// 获取栈的长度
size_t size() {
return s.size();
}
// 判断栈顶元素大小
T getTop() {
if (!isEmpty()) {
return s.top();
} else {
throw std::runtime_error("Stack is empty, cannot access top element.");
}
}
};
int main() {
MyStack<int> myStack;
// 输入并入栈
myStack.push(1);
myStack.push(2);
myStack.push(3);
myStack.push(0);
// 出栈并打印
myStack.popAndPrint();
// 输出剩余元素
while (!myStack.isEmpty()) {
std::cout << "Remaining: " << myStack.getTop() << std::endl;
myStack.pop();
}
// 判断栈状态
std::cout << "Is stack empty? " << (myStack.isEmpty() ? "Yes" : "No") << std::endl;
std::cout << "Stack length: " << myStack.size() << std::endl;
return 0;
}
```
当你运行这个程序,它会按照你的需求操作栈并输出相应的结果。如果你想要自定义数据类型而非整数,只需将`MyStack<int>`改为`MyStack<your_type>`即可。
阅读全文