Queue.hpp
Vá para a documentação deste arquivo.
1 
6 #ifndef PERSISTENCE_QUEUE_HPP_
7 #define PERSISTENCE_QUEUE_HPP_
8 
9 #include "Stack.hpp"
10 
11 namespace persistence {
12 using stack::Stack;
13 
14 namespace queue {
15 
37 template<class T> class Queue {
38 public:
42  Stack<T> stack;
46  int rem;
47 
50  Queue();
51 
54 
70  const T& First() const;
71 
87  const T& K_th(int k) const;
88 
92  int Size() const;
93 
95 
100 
106  Queue<T> Enqueue(const T& x) const;
107 
112  Queue<T> Dequeue() const;
113 
115 
116 private:
117  Queue<T>(Stack<T>, int);
118 };
119 
120 } // namespace queue
121 
122 } // namespace persistence
123 
124 #include "Queue.tpp"
125 
126 #endif // PERSISTENCE_QUEUE_HPP_
Fila persistente.
Definition: Queue.hpp:37
int Size() const
Tamanho da fila.
const T & First() const
Primeiro elemento da fila.
Implementação de uma pilha persistente.
Stack< T > stack
Pilha associada.
Definition: Queue.hpp:42
int rem
Contagem de elementos removidos.
Definition: Queue.hpp:46
Queue< T > Dequeue() const
Remoção do início.
const T & K_th(int k) const
k-ésimo elemento.
Queue< T > Enqueue(const T &x) const
Inserção de valor.
Queue()
Construtor de fila vazia.