-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueue.cpp
More file actions
115 lines (95 loc) · 2.15 KB
/
Queue.cpp
File metadata and controls
115 lines (95 loc) · 2.15 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//#ifdef DLL_QUEUE
//#define DLL_QUEUE
#include <iostream>
#include <list>
#include <cstdlib>
using namespace std;
using namespace std;
class circle {
public:
circle(double r) {
radius = r;
}
circle() {
radius = 0;
}; //count++; idNum = count;
double getRadius() { return radius; }
void setRadius(double r) { radius = r; }
double getArea() { return radius * radius * 3.14; }
private:
double radius;
int idNum;
};
template<class T>
class Queue {
public:
Queue(){} //empty constructor
void clear() {
first.clear();
}
bool isEmpty() const {
return first.empty();
}
T& front() {
return first.front();
}
T dequeue() {
T el = first.front();
first.pop_front();
return el;
}
void enqueue(const T el) {
first.push_back(el);
}
private:
list < T> first;
};
//template <class T>
void DisplayQueue(const Queue<circle> q1) {
Queue<circle> q2 = q1;
int counter = 0;
while (!q2.isEmpty()) {
counter++;
cout << "Element number " << counter << ": " << q2.front().getRadius() << endl;
q2.dequeue();
}
}
void displayMenu() {
cout << "1. Add to Queue \n2. Display Contents of Queue \n3. Remove from Queue \n Enter 999 to quit.\n";
}
int main() {
circle *circle3 = new circle(3.33);
circle *circle2 = new circle(2.22);
circle *circle1 = new circle(1.11);
Queue<circle> queue1;
queue1.enqueue(*circle1);
queue1.enqueue(*circle2);
queue1.enqueue(*circle3);
DisplayQueue(queue1);
cout << "is the current queue. \n";
//main menu
displayMenu();
double i = 0;
while (i != 999) {
cin >> i;
if (i == 1) {
cout << "Enter radius of circle: ";
cin >> i;
circle *qcircle = new circle(i);
queue1.enqueue(i);
cout << "New circle " << qcircle->getRadius() << " added to queue\n";
delete qcircle;
} else if (i==2) {
DisplayQueue(queue1);
}
else if (i == 3) {
if (queue1.isEmpty()) break;
circle* rcircle = new circle(queue1.dequeue());
cout << "Contents: " << rcircle->getRadius() << " removed from queue" << endl;
delete rcircle;
}
}
cout << "end of file reached";
return 0;
}
//#endif