-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathQueueImplementation.cpp
More file actions
98 lines (74 loc) · 1.71 KB
/
Copy pathQueueImplementation.cpp
File metadata and controls
98 lines (74 loc) · 1.71 KB
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
#include<bits/stdc++.h>
using namespace std;
class Queue{
public:
// properties
int * arr;
int qfront;
int qrear;
int size;
// constructor
Queue(int size){
this -> size = size;
arr = new int[size];
qfront = 0;
qrear = 0;
}
// methods
void Empty(){
if(qfront == qrear){
cout<<"Queue is empty"<<endl;
}
else {
cout <<"Queue is not empty"<<endl;
}
}
void enque(int value){
if(qrear == size){
cout<<"Queue is full, can't insert"<<endl;
}
else{
arr[qrear] = value;
qrear++;
}
}
int deque()
{
if(qfront == qrear)
{
cout<<" Queue is empty, can't remove"<<endl;
return -1;
}
else{
int ans = arr[qfront];
arr[qfront] = -1;
qfront++;
if(qfront == qrear)
{
qfront = 0;
qrear = 0;
}
return ans;
}
}
int front(){
return arr[qfront];
}
int rear(){
return arr[qrear];
}
};
int main()
{
Queue Q(5);
Q.enque(1);
Q.enque(2);
Q.enque(3);
Q.enque(4);
Q.enque(5);
cout<< Q.deque() << endl;
cout<< Q.front() << endl;
Q.enque(6);
cout<<Q.qrear<<endl;
return 0;
}