-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueue.cpp
More file actions
55 lines (47 loc) · 1014 Bytes
/
Queue.cpp
File metadata and controls
55 lines (47 loc) · 1014 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef QUEUE_CPP
#define QUEUE_CPP
#include "Queue.h"
template<typename T>
Queue<T>::Queue() {
this->head = NULL;
this->tail = NULL;
}
template<typename T>
bool Queue<T>::isEmpty(){
return this->head == NULL;
}
template<typename T>
void Queue<T>::put(T* info){
if (this->head == NULL) {
this->head = this->tail = new DoubleNode<T>(info,head,NULL);
} else {
this->tail->getNext()->setNext(new DoubleNode<T>(info));
this->tail->setNext(this->tail->getNext());
}
}
template <typename T>
T* Queue<T>::get(){
if (this->head != NULL) {
DoubleNode<T>* aux = this->head;
this->head->setNext(this->head->getNext());
return aux->getInfo();
} else {
return NULL;
}
}
template<typename T>
int Queue<T>::size(){
int counter = 0;
DoubleNode<T>* aux = this.head;
while (aux != NULL) {
counter++;
aux = aux->next;
}
return counter;
}
template<typename T>
Queue<T>::~Queue()
{
//dtor
}
#endif // QUEUE_CPP