forked from iamAnki/CPP-Programs-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDouble-Ended-Queue.cpp
150 lines (145 loc) · 2.88 KB
/
Double-Ended-Queue.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include<iostream>
using namespace std;
int q[5];
int f=0,r=-1;
void insert_element_rear()
{
if(f==0 and r==4)
{
cout<<"Queue Overflow"<<endl;
}
else
{
int ele;
cout<<"Enter the element from front end: "<<endl;
cin>>ele;
if(f>0 and r==4)
{
for(int i=1;i>=f;i++)
{
for(int j=f;j<=r;j++)
{
q[j-1]=q[i];
}
f--;
r--;
}
q[r+1]=ele;
r++;
}
else
{
q[r+1]=ele;
r++;
}
}
}
void insert_element_front()
{
if(f==0 and r==4)
{
cout<<"Queue Overflow"<<endl;
}
else
{
int ele;
cout<<"Enter the element from front end: "<<endl;
cin>>ele;
if(f>0 and r==4)
{
q[f-1]=ele;
f--;
}
else
{
if(f==0 and r==-1)
{
q[r+1]=ele;
r++;
}
else
{
for(int i=r;i>=f;i--)
{
q[i+1]=q[i];
}
q[f]=ele;
r++;
}
}
}
}
void remove_element1()
{
if(r==-1)
{
cout<<"Queue underflow"<<endl;
}
else
{
cout<<"Element removed from front succesfully.. "<<endl;
f++;
}
}
void remove_element2()
{
if(r==-1)
{
cout<<"Queue underflow"<<endl;
}
else
{
cout<<"Element removed from Rear succesfully.."<<endl;
r--;
}
}
void display()
{
if(r==-1)
{
cout<<"Queue is empty"<<endl;
}
else
{
cout<<endl<<"----------------------DEqueue contains---------------- :"<<endl;
for(int i=f;i<=r;i++)
{
cout<<q[i]<<" ";
}
}
}
int main()
{
int i;
do{
printf("\n****************MENU(DEQUEUE)***********\n");
printf("\n1-INSERT elements from Front :\n");
printf("2- REmOVE elements from Front :\n");
printf("3-INSERT elements from Rear :\n");
printf("4- REmOVE elements from Rear :\n");
printf("5-DISPLAY elements:\n");
printf("6-EXIT\n");
printf("Provide your choice :");
cin>>i;
switch(i)
{
case 1:
insert_element_front();
break;
case 2:
remove_element1();
break;
case 3:
insert_element_rear();
break;
case 4:
remove_element2();
break;
case 5:
display();
break;
case 6:
exit(0);
}
}while(true);
}