Circular Queue
Circular Queue
h>
#include<stdlib.h>
int arr[100];
int front=-1,rear=-1;
int *size=NULL;
void enqueue(int item){
if (front==(rear+1)%*size){
printf("queue is full\n");
return;
}
if ((front==-1)&&(rear==-1)){
front++;
}
rear=(rear+1)%*size;
arr[rear]=item;
}
void dequeue(){
if (front==-1 && rear==-1){
printf("queue is empty");
return;
}
int x=arr[front];
printf("%d is deleted\n",x);
if (front==rear){
front=rear=-1;
return;
}
front=(front+1)%*size;
}
void display(){
if (front==-1){
printf("queueu is empty\n");
return;
}
int i;
for( i=front;i!=rear;i=(i+1)%*size){
printf("%d ",arr[i]);
}
printf("%d ",arr[i]);
printf("\n");
}
int main()
{ int n=3;
size=&n;
enqueue(6);
display();
enqueue(7);
enqueue(8);
enqueue(6);
display();
dequeue();
display();
enqueue(0);
display();
dequeue();
dequeue();
display();
dequeue();
display();
dequeue();
return 0;
}