#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct node *Ptrl;
struct node{
int *Data;
int rear;
int front;
};
int N;
Ptrl Dent()//初始化
{
Ptrl T;
T=(Ptrl)malloc(sizeof(struct node));
T->Data=(int *)malloc(sizeof(int)*N);
T->front=-1;
T->rear=-1;
return T;
}
void AddQ(Ptrl Ptrs,int item)
{
if(Ptrs->rear+1%N==Ptrs->front){
printf("队列满\n");
}else{
Ptrs->rear=(Ptrs->rear+1)%N;
Ptrs->Data[Ptrs->rear]=item;
}
}
int DeleteQ(Ptrl Ptrs)
{
if(Ptrs->front==Ptrs->rear){
return -1;
}else{
Ptrs->front=(Ptrs->front+1)%N;
return (Ptrs->Data[Ptrs->front]);
}
}
int main()
{
Ptrl T;
int M,Q;
scanf("%d",&N);
T=Dent();
for(int i=0;i<N;i++)
{
scanf("%d",&M);
AddQ(T,M);
}
for(int i=0;i<N;i++)
{
Q=DeleteQ(T);
if(Q==-1){
printf("队列空\n");
}else{
printf("%d ",Q);
}
}
return 0;
}