给定一个初始为空的队列和一系列入队、出队操作,请编写程序输出每次出队的元素。队列的元素值均为整数。
输入格式:
输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d入队,0表示出队。n不超过20000。
输出格式:
按顺序输出每次出队的元素,每个元素一行。若某出队操作不合法(如在队列空时出队),则对该操作输出invalid。
输入样例:
输出样例:
思路
c++ stl 中容器queue的基本使用,注意需要使用q.empty()来判断队列是否为空
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <iostream> #include <queue> using namespace std; int main() { int n; cin >> n; queue<int> q; for (int i = 0; i < n; i++) { int x; cin >> x; if (x) { int y; cin >> y; q.push(y); } else { if (!q.empty()) { cout << q.front() << endl; q.pop(); } else cout << "invalid" << endl; } } return 0; }
|