C programs for Double ended queue ADT Using Array

Estudies4you

1 #include<stdio.h>
2 #include<stdlib.h>
3 #define MAXSIZE 4
4 int Queue[MAXSIZE],rear=-1,front=-1,i;
5 void insert_at_front();
6 void insert_at_rear();
7 void delete_at_front();
8 void delete_at_rear();
9 void display();
10 int main()
11 {
12 int ch;
13 printf("\n 1.insert at front\n 2.insert at rear\n\n 3.delete at front\n4.delete at rear\n5.DISPLAY\n\n
14 6.EXIT\n");
15 do
16 {
17 printf("\n\tenter_your_choice[1-6]:");
18 scanf("%d",&ch);
19 switch(ch)
20 {
21 case 1:insert_at_front();
22 break;
23 case 2:insert_at_rear();
24 break;
25 case 3:delete_at_front();
26 break;
27 case 4:delete_at_rear();
28 break;
29 case 5:display();
30 break;
31 case 6:exit(0);
32 default:printf("invalid_option \n");
33 }
34 }while(1);
35 }
36 void insert_at_rear()
37 {
38 if(rear==MAXSIZE-1)
39 {
40 printf("queue_is_full(overflow)\n");
41 return;
42 }
43 rear++;
44 printf("enter_the_element_to_insert_at_rear:");
45 scanf("%d",&Queue[rear]);
46 if(front==-1)
47 front++;
48 }
49 void insert_at_front()
50 {
51 int num;
52 if(front<=1)
53 {
54 printf("\n Can't add_item at front_end");
55 return;
56 }
57 else
58 {
59 front--;
60 printf("\n Enter_item to insert:");
61 scanf("%d",&Queue[front]);
62 }
63 }
64 void delete_at_front()
65 {
66 if(front==-1)
67 {
68 printf("queue_is empty(underflow)\n");
69 return;
70 }
71 printf("the_delete_at_front_element is:%d \n",Queue[front]);
72 if(front==rear)
73 front=rear=-1;
74 else
75 front++;
76 }
77 void delete_at_rear()
78 {
79 if(rear==-1)
80 {
81 printf("queue_is empty(underflow)\n");
82 return;
83 }
84 printf("the_delete_at_rear element is:%d \n",Queue[rear]);
85 if(front==rear)
86 front=rear=-1;
87 else
88 {
89 rear--;
90 }
91 }
92 void display()
93 {
94 if(front==-1)
95 {
96 printf("queue_is empty(underflow)\n");
97 return;
98 }
99 printf("the_element_in_queue are:front->");
100 for(i=front;i<=rear;i++)
101 printf("%d ",Queue[i]);
102 printf("<-REAR\n");
103 }
Output
1.insert at front
2.insert at rear
3.delete at front
4.delete at rear
5.DISPLAY
6.EXIT
enter_your_choice[1-6]:2
enter_the element_to_insert_at_rear:10
enter_your_choice[1-6]:2
enter_the element_to_insert_at_rear:30
enter_your_choice[1-6]:5
the_element in_queue are:front->10 30 <-REAR
enter_your_choice[1-6]:2
enter the element to insert_at_rear:40
enter_your_choice[1-6]:5
the_element in_queue are:front->10 30 40 <-REAR
enter_your_choice[1-6]:3
the delete_at_front element is:10
enter_your_choice[1-6]:5
the_element in_queue are:front->30 40 <-REAR
enter_your choice[1-6]:1
Enter_item to insert:40
enter_your_choice[1-6]:5
the_element in queue are:front->40 30 40 <-REAR
enter_your_choice[1-6]:4
the_delete_at_rear element is:40

To Top