2-12 链式队列的3个操作
分数 6
作者 陈越
单位 浙江大学
请编写程序,将 n 个整数顺序压入容量无限制的(链式)队列,随后执行 n+1 次取队首并出队的操作。
输入格式:
输入首先在第一行给出正整数 n;随后一行给出 n 个 int 范围内的整数,数字间以空格分隔。题目保证有 n 个元素的(链式)队列不会超过题目的空间限制。
输出格式:
将输入的n 个整数顺序压入队列,随后执行 n+1 次取队首并出队的操作,输出取出的元素的值,每行一个。
注意:当队列为空时,取队首和出队操作应该不执行,并在一行中输出错误信息 错误:队列为空。。空队列取队首应返回 -1。
输入样例:
输出样例:
1 2 3 4 5 6 7 8
| 1 2 3 4 5 错误:队列为空。 -1 错误:队列为空。
|
我的答案
- 逆天,跟上个题几乎一样,答案居然对了,虽然没用链队列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include <iostream> #include <queue>
using namespace std;
int main() { int n; cin >> n; queue<int> queue; int num; for (int i = 0; i < n; ++i) { cin >> num; queue.push(num); } if (queue.size() == n) { cout << "错误:队列已满。" << endl; } for (int i = 0; i < n + 1; ++i) { if (queue.empty()) { cout << "错误:队列为空。" << endl; cout << "-1" << endl; } else { cout << queue.front() << endl; queue.pop(); } } cout << "错误:队列为空。"; }
|