circlequeue.c
74 linesc
DOWNLOAD
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}