Deque1.hpp
Vá para a documentação deste arquivo.
1 
6 #ifndef PERSISTENCE_DEQUE1_HPP_
7 #define PERSISTENCE_DEQUE1_HPP_
8 
9 #include "Stack.hpp"
10 
11 namespace persistence {
12 
13 namespace deque1 {
14 
18 template<class T> using Node = stack::Node<T>;
19 
46 template<class T> class Deque {
47 public:
57 
61  Deque();
62  ~Deque();
63  Deque& operator=(const Deque &o);
64  Deque(const Deque &o);
65 
68 
74  const T& Front() const;
75 
80  const T& Back() const;
81 
87  const T& K_th(int k) const;
88 
90 
95 
103  Deque<T> Swap() const;
104 
109  Deque<T> PushFront(const T& x) const;
110 
115  Deque<T> PushBack(const T& x) const;
116 
121  Deque<T> PopFront() const;
122 
127  Deque<T> PopBack() const;
128 
130 
131 private:
132  Deque(Node<T> *f, Node<T> *l);
133 };
134 
135 } // namespace deque1
136 
137 } // namespace persistence
138 
139 #include "Deque1.tpp"
140 
141 #endif // PERSISTENCE_DEQUE1_HPP_
Deque< T > PopBack() const
Remoção do final.
Nó da pilha persistente.
Definition: Stack.hpp:16
Deque persistente utilizando LA e LCA.
Definition: Deque1.hpp:46
Deque< T > PushBack(const T &x) const
Inserção no final.
Deque< T > Swap() const
Inverte a deque.
const T & Back() const
Acesso ao último elemento.
Implementação de uma pilha persistente.
Deque< T > PopFront() const
Remoção do início.
Deque< T > PushFront(const T &x) const
Inserção no início.
Node< T > * first
Primeiro nó.
Definition: Deque1.hpp:52
const T & K_th(int k) const
Acesso ao k-ésimo elemento.
const T & Front() const
Acesso ao primeiro elemento.
Node< T > * last
Ultimo nó.
Definition: Deque1.hpp:56
Deque()
Construtor vazio.