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<<" \n Inserted 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