-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSimpleQueue.cpp
More file actions
131 lines (107 loc) · 2.23 KB
/
SimpleQueue.cpp
File metadata and controls
131 lines (107 loc) · 2.23 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
//SimpleQueue.cpp
//by Austin Bachman
//4/22/16
//implements SimpleQueue functions
//Modified for CS446 Assignment 2
//9/24/16
// Precompiler directives /////////////////////////////////////////////////////
#ifndef CLASS_SIMPLEQUEUE_CPP
#define CLASS_SIMPLEQUEUE_CPP
// Header files ///////////////////////////////////////////////////////////////
#include "SimpleQueue.h"
using namespace std;
template <class DataType>
SimpleQueue<DataType>::SimpleQueue
(
// no parameters
)
: SimpleList<DataType>( INITIAL_CAPACITY ), queueSize( 0 )
{
// initializers used
}
template <class DataType>
SimpleQueue<DataType>::SimpleQueue
(
const SimpleQueue &copiedQueue
)
: SimpleList<DataType>( copiedQueue ),
queueSize( copiedQueue.queueSize )
{
this->copyList( this->listData, copiedQueue.listData, queueSize );
//this->listData( copiedQueue.listData );
}
template <class DataType>
SimpleQueue<DataType>::~SimpleQueue
(
// no parameters
)
{
//parent destructor called
}
template <class DataType>
const SimpleQueue<DataType>& SimpleQueue<DataType>::operator =
(
const SimpleQueue &rhQueue
)
{
if( this != &rhQueue )
{
*this = rhQueue;
}
return *this;
}
template <class DataType>
bool SimpleQueue<DataType>::isEmpty
(
// no parameters
) const
{
return ( queueSize == 0 );
}
template <class DataType>
void SimpleQueue<DataType>::enqueue
(
const DataType &enqueueData
)
{
if( queueSize == this->getCapacity() )
{
this->resize( this->getCapacity() * 1.25 );
}
this->operator[]( queueSize ) = enqueueData;
queueSize++;
}
template <class DataType>
bool SimpleQueue<DataType>::dequeue
(
DataType &dequeueData
)
{
int index;
if( !isEmpty() )
{
queueSize--;
dequeueData = this->operator []( 0 );
for( index = 0; index < queueSize; index++ )
{
this->operator[]( index ) = this->operator[]( index + 1 );
}
return true;
}
return false;
}
template <class DataType>
bool SimpleQueue<DataType>::peekFront
(
DataType &peekData
)
{
if( !isEmpty() )
{
peekData = this->operator[]( 0 );
return true;
}
return false;
}
// Terminating precompiler directives ////////////////////////////////////////
#endif // #ifndef CLASS_SIMPLEQUEUE_CPP