#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define max 10
typedef struct
{
int data[10];
int front,rear;
}king,*zoo;
int init(zoo q)
{
q->front=0;
q->rear=0;
return 0;
}
int add(zoo q,int z)
{
if((q->rear+1)%max==q->front)
{
printf("error");
return 0;
}
else
{
q->rear=(q->rear+1)%max;
q->data[q->rear]=z;
printf("input ok\n");
}
return 0;
}
int out(zoo q)
{
if(q->front==q->rear)
{printf("error");
return 0;}
else
{
int y;
q->front=(q->front+1)%max;
y=q->data[q->front];
printf("OUTPUT:%d\n",y);
}return 0;
}
int cd(zoo q)
{
int i=q->front;
while(i!=q->rear)
{
i=(i+1)%max;
printf("read %d,%d\n",i,q,q->data[i]);
}
printf("\n");
return 0;
}
int main()
{int i;
zoo q=(king *)malloc(sizeof (king));
init(q);
for(i=1;i<10;i++)
{add(q,i);}
out(q);
out(q);
add(q,9);
cd(q);
getchar();
getchar();
return 0;
}