doubleendq.c
109 linesc
DOWNLOAD
1// Aim: Program to perform Double Ended Queue operations (Insertion, Deletion).
2#include<stdio.h>
3int a[20],size,f,r;
4void push(int item){
5    if(f==0&&r==size-1){
6        printf("Queue is full\n");
7    }
8    else if(f==-1&&r==-1){
9        f=r=0;
10        a[f]=item;
11    }
12    else if(f>0){
13        f--;
14        a[f]=item;
15    }
16    else{
17        for(int i=r;i>=f;i--){
18            a[i+1]=a[i];
19        }
20        r++;
21        a[f]=item;
22    }
23}
24void pop(){
25    if(f==-1&&r==-1){
26        printf("Queue is empty\n");
27    }
28    else if(f==r){
29        printf("Deleted element is %d\n",a[f]);
30        f=r=-1;
31    }
32    else{
33        printf("Deleted element is %d\n",a[f]);
34        f++;
35    }
36}
37void inject(int item){
38    if(f==0&&r==size-1){
39        printf("Queue is full\n");
40    }
41    else if(f==-1&&r==-1){
42        f=r=0;
43        a[r]=item;
44    }
45    else if(r<size-1){
46        r++;
47        a[r]=item;
48    }
49    else{
50        for(int i=f;i<=r;i++){
51            a[i-1]=a[i];
52        }
53        f--;
54        a[r]=item;
55    }
56}
57void eject(){
58    if(f==-1&&r==-1){
59        printf("Queue is empty\n");
60    }
61    else if(f==r){
62        printf("Deleted element is %d\n",a[f]);
63        f=r=-1;
64    }
65    else{
66        printf("Deleted element is %d\n",a[r]);
67        r--;
68    }
69}
70void display(){
71    int i;
72    if(f==-1&&r==-1){
73        printf("Queue is empty\n");
74    }
75    else{
76        for(i=f;i<=r;i++){
77            printf("%d\t",a[i]);
78        }
79    }
80}
81void main(){
82    int ch,item;
83    printf("Enter the size of the queue\n");
84    scanf("%d",&size);
85    f=r=-1;
86    do{
87        printf("\n1.Push\n2.Pop\n3.Inject\n4.Eject\n5.Display\n6.Exit\n");
88        printf("Enter your choice\n");
89        scanf("%d",&ch);
90        switch(ch){
91            case 1: printf("Enter the element to be pushed\n");
92                    scanf("%d",&item);
93                    push(item);
94                    break;
95            case 2: pop();
96                    break;
97            case 3: printf("Enter the element to be injected\n");
98                    scanf("%d",&item);
99                    inject(item);
100                    break;
101            case 4: eject();
102                    break;
103            case 5: display();
104                    break;
105            case 6: break;
106            default: printf("Invalid choice\n");
107        }
108    }while(ch!=6);
109}