#include
#include
#include
#define maxsize 10
typedef struct cir_queue {
int data[maxsize];
int rear;
int front;
}cir_queue;
cir_queue* init()
{
cir_queue* q = (cir_queue*)malloc(sizeof(cir_queue));
if (q == NULL) {
exit(0);
}
memset(q-˃data, 0, sizeof(q-˃data));
q-˃front = 0;
q-˃rear = 0;
return q;
}
void push(cir_queue* q, int data) {
if ((q-˃rear + 1) % maxsize == q-˃front)
{
printf("FULL ");
return;
}
else
{
q-˃data[q-˃rear] = data;
q-˃rear = (q-˃rear + 1) % maxsize;
}
}
void pop(cir_queue* q) {
if (q-˃rear == q-˃front)
{
printf("EMPTY ");
return;
}
else
{
printf("%d ", q-˃data[q-˃front]);
q-˃data[q-˃front] = 0;
q-˃front = (q-˃front + 1) % maxsize;
}
}
void print(cir_queue* q)
{
int i = q-˃front;
while (i != q-˃rear)
{
printf("%d ", q-˃data[i]);
i = (i + 1) % maxsize;
}
}
int main()
{