This repository was archived by the owner on Oct 11, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathQueue.h
More file actions
executable file
·114 lines (83 loc) · 2.29 KB
/
Copy pathQueue.h
File metadata and controls
executable file
·114 lines (83 loc) · 2.29 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
/****************************************************************************
* *
* File: Queue.h *
* *
* Author: Branch Vincent *
* *
* Date: Jul 6, 2016 *
* *
* Purpose: This file defines the Queue class. *
* *
****************************************************************************/
#ifndef QUEUE_H
#define QUEUE_H
#include <iostream>
#include <list>
#include "Task.h"
using namespace std;
class Queue
{
// Public member functions
public:
// Constructor
Queue() : mList() {}
// Inspector
Task* front() const;
int size() const {return mList.size();}
// Mutators
void push(Task* task) {mList.push_back(task);}
Task* pop();
// Facilitators
// void output(ostream& out) const
// {
// for (mList<Task*>::iterator it = taskmList.begin(); it != taskmList.end(); it++)
// cout << **it << endl;
// }
// Other
// void makeEmpty() {mList.makeEmpty();}
// bool isEmpty() {return mList.isEmpty();}
// Data members
private:
list<Task*> mList;
};
//ostream& operator<<(ostream& out, const Queue& q) {q.output(out); return out;}
/****************************************************************************
* *
* Function: front *
* *
* Purpose: To return the front item in the queue *
* *
****************************************************************************/
Task* Queue::front() const
{
// Check size
if (mList.size() == 0)
{
cerr << "Error: Cannot access empty queue. Exiting...";
exit(1);
}
// Return front
return mList.front();
}
/****************************************************************************
* *
* Function: pop *
* *
* Purpose: To remove and return the front item in the queue *
* *
****************************************************************************/
Task* Queue::pop()
{
// Check size
if (mList.size() == 0)
{
cerr << "Error: Cannot access empty queue. Exiting...";
exit(1);
}
// Get and pop front
Task* front = mList.front();
mList.pop_front();
// Return front
return front;
}
#endif