Skip to content

Commit c8e5d21

Browse files
authored
Merge pull request #271 from nirmalkatiyar/master
Added new data structure Deque.
2 parents 6327b20 + 6ba203d commit c8e5d21

File tree

1 file changed

+121
-0
lines changed

1 file changed

+121
-0
lines changed
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
#include<iostream>
2+
using namespace std;
3+
#define SIZE 10
4+
class dequeue {
5+
int a[20],f,r;//f==front r== rear
6+
public:
7+
dequeue();
8+
void insert_at_beg(int);
9+
void insert_at_end(int);
10+
void delete_fr_front();
11+
void delete_fr_rear();
12+
void show();
13+
};
14+
dequeue::dequeue() {
15+
f=-1;
16+
r=-1;
17+
}
18+
void dequeue::insert_at_end(int i) {
19+
if(r>=SIZE-1) {
20+
cout<<"\n insertion is not possible, overflow!!!!";
21+
} else {
22+
if(f==-1) {
23+
f++;
24+
r++;
25+
} else {
26+
r=r+1;
27+
}
28+
a[r]=i;
29+
cout<<"\nInserted item is"<<a[r];
30+
}
31+
}
32+
void dequeue::insert_at_beg(int i) {
33+
if(f==-1) {
34+
f=0;
35+
a[++r]=i;
36+
cout<<"\n inserted element is:"<<i;
37+
} else if(f!=0) {
38+
a[--f]=i;
39+
cout<<"\n inserted element is:"<<i;
40+
} else {
41+
cout<<"\n insertion is not possible, overflow!!!";
42+
}
43+
}
44+
void dequeue::delete_fr_front() {
45+
if(f==-1) {
46+
cout<<"deletion is not possible::dequeue is empty";
47+
return;
48+
}
49+
else {
50+
cout<<"the deleted element is:"<<a[f];
51+
if(f==r) {
52+
f=r=-1;
53+
return;
54+
} else
55+
f=f+1;
56+
}
57+
}
58+
void dequeue::delete_fr_rear() {
59+
if(f==-1) {
60+
cout<<"deletion is not possible::dequeue is empty";
61+
return;
62+
}
63+
else {
64+
cout<<"the deleted element is:"<<a[r];
65+
if(f==r) {
66+
f=r=-1;
67+
} else
68+
r=r-1;
69+
}
70+
}
71+
void dequeue::show() {
72+
if(f==-1) {
73+
cout<<"Dequeue is empty";
74+
} else {
75+
for(int i=f;i<=r;i++) {
76+
cout<<a[i]<<" ";
77+
}
78+
}
79+
}
80+
int main() {
81+
int c,i;
82+
dequeue d;
83+
//perform switch opeartion
84+
do {
85+
cout<<"\n 1.insert at beginning";
86+
cout<<"\n 2.insert at end";
87+
cout<<"\n 3.show";
88+
cout<<"\n 4.deletion from front";
89+
cout<<"\n 5.deletion from rear";
90+
cout<<"\n 6.exit";
91+
cout<<"\n enter your choice:";
92+
cin>>c;
93+
switch(c) {
94+
case 1:
95+
cout<<"enter the element to be inserted";
96+
cin>>i;
97+
d.insert_at_beg(i);
98+
break;
99+
case 2:
100+
cout<<"enter the element to be inserted";
101+
cin>>i;
102+
d.insert_at_end(i);
103+
break;
104+
case 3:
105+
d.show();
106+
break;
107+
case 4:
108+
d.delete_fr_front();
109+
break;
110+
case 5:
111+
d.delete_fr_rear();
112+
break;
113+
case 6:
114+
exit(1);
115+
break;
116+
default:
117+
cout<<"invalid choice";
118+
break;
119+
}
120+
} while(c!=7);
121+
}

0 commit comments

Comments
 (0)