1. 用C++代码实现一个栈并完成以下要求: (1) 输入0123入栈后再出栈并打印输出; (2) 对栈顶元素出栈后输出剩余元素并打印输出; (3) 判断此时栈是否为空; (4) 判断此时栈的长度; (5) 判断此时栈顶元素大小。
时间: 2024-11-03 21:14:25 浏览: 34
在C++中,你可以使用标准库中的`stack`容器来实现一个简单的栈数据结构。下面是一个简单的例子,满足你所提出的各项要求:
```cpp
#include <iostream>
#include <stack>
class MyStack {
private:
std::stack<int> s;
public:
void push(int value) {
s.push(value);
}
int pop() {
if (s.empty()) {
throw std::runtime_error("Stack is empty");
}
return s.top();
}
bool isEmpty() const {
return s.empty();
}
size_t size() const {
return s.size();
}
int top() const {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return s.top();
}
void printStack() {
for (int val : s) {
std::cout << val << " ";
}
std::cout << std::endl;
}
};
int main() {
MyStack mystack;
// 入栈
mystack.push(0);
mystack.push(1);
mystack.push(2);
mystack.push(3);
// 出栈并打印
std::cout << "After pushing 0123: ";
mystack.printStack();
// 输出剩余元素
mystack.pop();
std::cout << "After popping: ";
mystack.printStack();
// 判断栈是否为空
bool is_empty = mystack.isEmpty();
if (is_empty) {
std::cout << "The stack is now empty." << std::endl;
} else {
std::cout << "The stack is not empty." << std::endl;
}
// 判断栈的长度
size_t length = mystack.size();
std::cout << "Current stack length: " << length << std::endl;
// 判断栈顶元素
try {
int top_val = mystack.top();
std::cout << "Top element: " << top_val << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
这个程序首先创建了一个`MyStack`类,它包含栈的基本操作,如push、pop、isEmpty、size和top。在`main`函数中,我们按照要求进行了一系列操作,并相应地输出结果。
阅读全文