965: 循环队列
样例输入
4
7
in 1
in 2
in 5
in 6
out
out
in 8
样例输出
5 8
#include<bits/stdc++.h>
# define maxsize 50
using namespace std;
struct Queue
{
int data[maxsize];
int fro,re;
};
void creat(Queue *&p)
{
p=new Queue;
p->fro=p->re=0;
}
void enqueue(Queue *&p,int num)
{
p->re++;
p->data[p->re]=num;
}
int dequeue(Queue *&p)
{
p->fro++;
return p->data[p->fro];
}
bool full(Queue *&p,int Size)
{
return ((p->re+1)%Size==p->fro);
}
bool Empty(Queue *&p)
{
return (p->fro==p->re);
}
int main()
{
int n,m,num;
char str[maxsize];
cin >> n >> m;
Queue *p;
creat(p);
for(int i=0;i<m;i++)
{
cin >> str;
if(str[0]=='i')
{
cin >> num;
if(!full(p,n))
{
enqueue(p,num);
}
}
else if(str[0]=='o')
{
if(!Empty(p))
{
dequeue(p);
}
}
}
while(!Empty(p))
{
num=dequeue(p);
cout << num << ' ';
}
return 0;
}