BFLibCPP 0.1
CPP Library
Loading...
Searching...
No Matches
queue.hpp
Go to the documentation of this file.
1
6#ifndef QUEUE_HPP
7#define QUEUE_HPP
8
9#include "access.hpp"
10#include "list.hpp"
11
12namespace BF {
13
14template <typename T, typename S = int>
15class Queue : protected List<T,S> {
16public:
17 Queue() : List<T,S>() {
18
19 }
20
22
23 }
24
25 int push(T object) {
26 return this->add(object);
27 }
28
29 int pop() {
30 return this->deleteNode(this->first());
31 }
32
33 T front() const {
34 typename List<T,S>::Node * n = this->first();
35 if (n) return n->object();
36 return 0;
37 }
38
39 T back() const {
40 typename List<T,S>::Node * n = this->last();
41 if (n) return n->object();
42 return 0;
43 }
44
45 S size() { return this->count(); }
46
47 bool empty() { return this->count() == 0; };
48};
49
50} // namespace BF
51
52#endif // QUEUE_HPP
53
Definition list.hpp:47
L object() const
Definition list.hpp:58
Definition list.hpp:41
int count() const
Definition list.hpp:104
Node * last() const
Definition list.hpp:229
int add(T obj)
Definition list.hpp:107
Node * first() const
Definition list.hpp:225
int deleteNode(Node *node)
Definition list.hpp:288
Definition queue.hpp:15
T back() const
Definition queue.hpp:39
S size()
Definition queue.hpp:45
Queue()
Definition queue.hpp:17
~Queue()
Definition queue.hpp:21
bool empty()
Definition queue.hpp:47
int pop()
Definition queue.hpp:29
int push(T object)
Definition queue.hpp:25
T front() const
Definition queue.hpp:33
Definition array.hpp:18