C++编写一程序,将一组整数入队压栈,然后在出队和弹栈时输出奇数。
时间: 2024-03-21 10:44:06 浏览: 59
用C++写的关于栈的程序
好的,以下是实现这个要求的C++代码:
```cpp
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
int main()
{
queue<int> q; // 声明一个队列
stack<int> s; // 声明一个栈
// 入队和压栈
int n;
cout << "请输入整数个数: ";
cin >> n;
cout << "请输入整数: ";
for (int i = 0; i < n; i++) {
int x;
cin >> x;
q.push(x); // 将整数入队
s.push(x); // 将整数压栈
}
// 出队和弹栈
cout << "奇数: ";
while (!q.empty() && !s.empty()) {
int x = q.front();
q.pop(); // 出队
if (x % 2 == 1) {
cout << x << " ";
}
x = s.top();
s.pop(); // 弹栈
if (x % 2 == 1) {
cout << x << " ";
}
}
cout << endl;
return 0;
}
```
程序的实现思路如下:
1. 声明一个队列和一个栈,分别用来存储输入的整数。
2. 通过循环将输入的整数入队和压栈。
3. 通过循环出队和弹栈,判断当前元素是否为奇数,如果是,则输出。
需要注意的是,队列和栈是分别独立存储的,所以要分别判断它们是否为空。
阅读全文