c++ 队列的基本应用

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;
}