c++ 队列的基本应用
题目描述
现在去营业厅办理业务,都要先取号,再等待叫号。叫号系统有两种模式:
1.取号,取号时要输入自己的11位电话号码,号码按取号的顺序存在系统中;
2.叫号,叫号时会显示当前在最前面的电话号码,并且把该号码从系统中删除。
输入
输入包括多行,每行输入一个操作:
1. 输入字母I,表示当前的操作是取号,后面跟着取号顾客的电话号码;
2. 输入字母O,表示当前的操作是叫号。
输入不超过100行。
输出
输出叫号的顺序,如果叫号的时候已无人等待,请输出“None”。
样例输入
O
I 13321456781
I 15968777742
O
I 13957881069
O
O
O
样例输出
None
13321456781
15968777742
13957881069
None
提示
代码
#include <bits/stdc++.h>
using namespace std;
long long q[10000001];
int f,e;
char tmp[100];
int main()
{
f = 1,e=0;
char c;
while(scanf("%c",&c)!=EOF)
{
if(c=='I')
{
long long x;
cout << "输入:" << " ";
scanf("%lld",&x);
e++;//e是排队人数
q[e]=x;
}
else
{
if(f<=e)
{
cout << "输出:" << " ";
printf("%lld\n",q[f]);
f++;//f是已经叫号的号数
}
else
{
cout << "输出:" << " ";
printf("None\n");
}
}
gets(tmp);
}
return 0;
}