环形数组
N=1000就可过(当然这个1000极其不严谨)
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
const int N = 1000;
struct node{
int front=0,rear=0,maxSize=N;
int dat[N];
}queue;
void queue_push(struct node* Q,int x){
Q->dat[Q->rear] = x;
Q->rear = (Q->rear + 1) % Q->maxSize;
}
void queue_pop(struct node* Q){
Q->front = (Q->front + 1) % Q->maxSize;
}
bool queue_empty(struct node*Q){
return Q->rear == Q->front;
}
int queue_query(struct node*Q){
int value = Q->dat[Q->front];
return value;
}
int main(){
int n;cin>>n;
while(n--){
string buffer;
cin>>buffer;
if(buffer=="push"){
int x;cin>>x;
queue_push(&queue,x);
}
else if(buffer=="pop"){
queue_pop(&queue);
}
else if(buffer=="empty"){
if(queue_empty(&queue))cout<<"YES\n";
else cout<<"NO\n";
}
else if(buffer=="query"){
cout<<queue_query(&queue)<<endl;
}
}
return 0;
}