-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueue.hpp
More file actions
40 lines (34 loc) · 795 Bytes
/
queue.hpp
File metadata and controls
40 lines (34 loc) · 795 Bytes
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
template <typename T>
class Queue {
static const int MAXSIZE = 50;
private:
T data[MAXSIZE];
int front = 0;
int rear = 0;
public:
void initQueue() { front = rear = 0; }
bool queueEmpty() { return rear == front ? true : false; }
bool enQueue(T elem) {
if ((rear + 1) % MAXSIZE == front) {
return false;
}
data[rear] = elem;
rear = (rear + 1) % MAXSIZE;
return true;
}
bool deQueue(T &elem) {
if (rear == front) {
return false;
}
elem = data[front];
front = (front + 1) % MAXSIZE;
return true;
}
bool getHead(T &elem) {
if (rear == front) {
return false;
}
elem = data[front];
return true;
}
};