1// Aim: Program to perform Circular Queue operations (Insertion, Deletion).
2#include<stdio.h>
3int a[20],s,f,r;
4void enqueue(int item){
5 if((r+1)%s==f){
6 printf("Queue is full\n");
7 }
8 else if(f==-1&&r==-1){
9 f=r=0;
10 a[r]=item;
11 }
12 else{
13 r=(r+1)%s;
14 a[r]=item;
15 }
16}
17void dequeue(){
18 if(f==-1&&r==-1){
19 printf("Queue is empty\n");
20 }
21 else if(f==r){
22 printf("Deleted element is %d\n",a[f]);
23 f=r=-1;
24 }
25 else{
26 printf("Deleted element is %d\n",a[f]);
27 f=(f+1)%s;
28 }
29}
30void display(){
31 int i;
32 if(f==-1&&r==-1){
33 printf("Queue is empty\n");
34 }
35 else{
36 if(f<=r){
37 for(i=f;i<=r;i++){
38 printf("%d\t",a[i]);
39 }
40 }
41 else{
42 for(i=f;i<s;i++){
43 printf("%d\t",a[i]);
44 }
45 for(i=0;i<=r;i++){
46 printf("%d\t",a[i]);
47 }
48 }
49 printf("\n");
50 }
51}
52void main(){
53 int ch,item;
54 printf("Enter the size of the queue\n");
55 scanf("%d",&s);
56 f=r=-1;
57 do{
58 printf("\n1.Enqueue\n2.Dequeue\n3.Display\n4.Exit\n");
59 printf("Enter your choice\n");
60 scanf("%d",&ch);
61 switch(ch){
62 case 1: printf("Enter the element to be enqueued\n");
63 scanf("%d",&item);
64 enqueue(item);
65 break;
66 case 2: dequeue();
67 break;
68 case 3: display();
69 break;
70 case 4: break;
71 default: printf("Invalid choice\n");
72 }
73 }while(ch!=4);
74}