#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
const int N = 10;
//const int N= 5;
typedef struct{
int *data;
int rear;
int front;
}Q;
void Print(Q *q)
{
int i;
// printf("q->rear:%d", q->rear);
for(i = q->front;i<q->rear;++i)
{
printf("%d ", *(q->data + i) );
}
printf("\n");
}
void init(Q *q)
{
q->data =(int*) malloc(sizeof(int) * N);
q -> front = q -> rear = 0;
}
int Insert(Q *q,int n)
{
//if(q->rear+1)%N )
if((q->rear+1)%N ==q->front)
return 0;
*(q->data + q->rear) = n;
q->rear = (q->rear+1)%N;
Print(q);
return 1;
}
int delete(Q *q,int *e)
{
if(q->rear == q->front)
return 0;
e = (q->data+q->front);
q->front = (q->front+1)%N;
Print(q);
return 1;
}
int length(Q q)
{
return (q.rear-q.front+N)%N;
}
void Create(Q *q,int n)
{
init(q);
int i;
for(i = 0;i<n;++i)
{
int tmp;
scanf("%d", &tmp);
Insert(q,tmp);
}
Print(q);
}
void solve()
{
printf("\n1.Please input your quene number\n");
printf("2.Please input your add number\n");
printf("3.delete the element\n");
printf("4.Get the length\n");
printf("5.Print the quene\n");
}
Q q;
int n;
int e;
int main(){
int pos;
pos = 1;
while(pos)
{
solve();
scanf("%d", &pos);
if(pos == 1)
{
printf("1.Please input your quene number\n");
int n;
scanf("%d", &n);
//init(&q,n);
Create(&q,n);
}
if(pos == 2)
{
printf("2.Please input your add number\n");
scanf("%d", &n);
//Insert(&q,n);
if(Insert(&q,n) == 0)
{
printf("full\n");
}
}
if(pos == 3)
{
printf("delete the element\n");
if(delete(&q,&e) == 0)
{
printf("empty\n");
}
}
if(pos == 4)
{
printf("3.get the length\n");
printf("%d", length(q));
}
if(pos == 5)
{
Print(&q);
}
}
return 0;
}