从键盘读入若干个整数,建一个顺序栈或链式栈,并完成下列操作:(1)初始化栈;(2)判栈为空;(3)出栈;(4)入栈。main函数怎么写
时间: 2024-10-25 21:08:29 浏览: 21
在C++中,我们可以使用`std::stack`容器来创建一个简单的顺序栈,它是C++标准库提供的模板类,实现了LIFO(Last In First Out,后进先出)的数据结构。以下是使用`std::stack`实现上述功能的基本步骤:
```cpp
#include <iostream>
#include <stack>
// 创建一个空栈
void initializeStack(std::stack<int>& stack) {
stack = std::stack<int>();
}
// 判定栈是否为空
bool isEmpty(const std::stack<int>& stack) {
return stack.empty();
}
// 出栈操作
int popStack(std::stack<int>& stack) {
if (isEmpty(stack)) {
std::cout << "Stack is empty." << std::endl;
return -1; // 或者抛异常,具体看你需要的行为
}
int topValue = stack.top(); // 获取栈顶元素
stack.pop(); // 移除栈顶元素
return topValue;
}
// 入栈操作
void pushStack(std::stack<int>& stack, int value) {
stack.push(value); // 将元素添加到栈顶
}
// main函数示例
int main() {
std::stack<int> myStack;
// 初始化栈
initializeStack(myStack);
// 输出"栈是否为空:"并判断并打印结果
if (isEmpty(myStack)) {
std::cout << "栈是否为空:是\n";
} else {
std::cout << "栈是否为空:否\n";
}
// 示例入栈、出栈
pushStack(myStack, 5);
pushStack(myStack, 10);
std::cout << "入栈后的栈顶元素:";
int poppedValue = popStack(myStack);
std::cout << poppedValue << "\n";
return 0;
}
```
在这个例子中,你可以根据需要修改`pushStack`和`popStack`函数的行为。`main`函数展示了如何在实际应用中调用这些栈的操作。
阅读全文