用c++代码实现一个栈名为word并完成以下要求: (1) 输入0123入栈后再出栈并打印输出; (2) 对栈顶元素出栈后输出剩余元素并打印输出; (3) 判断此时栈是否为空; (4) 判断此时栈的长度; (5) 判断此时栈顶元素大小。
时间: 2024-11-04 20:13:42 浏览: 22
YOLO算法-城市电杆数据集-496张图像带标签-电杆.zip
在C++中,你可以使用`std::stack`容器来实现这个需求。首先,你需要包含头文件`<iostream>`、`<vector>`和`<stack>`。下面是一个简单的程序来满足上述要求:
```cpp
#include <iostream>
#include <vector>
#include <stack>
class WordStack {
private:
std::stack<int> stack;
public:
// 入栈操作
void push(int num) {
stack.push(num);
}
// 出栈并打印操作
void popAndPrint() {
if (!stack.empty()) {
int top = stack.top();
std::cout << "Pop and Print: " << top << std::endl;
stack.pop();
} else {
std::cout << "Stack is empty!" << std::endl;
}
}
// 输出剩余元素
void printRemaining() {
while (!stack.empty()) {
std::cout << "Remaining: " << stack.top() << std::endl;
stack.pop();
}
}
// 判断栈是否为空
bool isEmpty() const {
return stack.empty();
}
// 判断栈的长度
size_t getLength() const {
return stack.size();
}
// 判断栈顶元素
int peekTop() const {
if (stack.empty()) {
throw std::runtime_error("Stack is empty!");
}
return stack.top();
}
};
int main() {
WordStack ws;
// 入栈
ws.push(0);
ws.push(1);
ws.push(2);
ws.push(3);
// 操作并打印结果
ws.popAndPrint(); // 输出 3
ws.printRemaining(); // 输出 2 和 1
std::cout << "Is Stack Empty? " << (ws.isEmpty() ? "Yes" : "No") << std::endl;
std::cout << "Stack Length: " << ws.getLength() << std::endl;
try {
std::cout << "Top Element: " << ws.peekTop() << std::endl;
} catch (const std::exception& e) {
std::cout << e.what() << std::endl;
}
return 0;
}
```
这个程序定义了一个名为`WordStack`的类,包含了所需的栈操作以及相应的检查功能。在`main()`函数里,我们按照题目要求进行了一系列操作。
阅读全文