Descrição Detalhada
template<class T>
class persistence::deque1::Deque< T >
Deque persistente utilizando LA e LCA.
Uma deque é uma lista que permite adições e remoções em suas duas pontas. Implementamos aqui uma deque persistente que também permite acesso ao k-ésimo elemento. Esta utiliza a mesma técnica que a pilha e a fila, tanto que a estrutura Node é compartilhada entre a pilha e esta estrutura.
A deque armazena elementos do tipo T
, e só assume que esse tipo tem um construtor de cópia. Uma diferença do código discutido no Capítulo 3 da tese é que aqui as funções não recebem a deque, mas são métodos desta.
Um objeto Deque consiste de apenas dois ponteiros para nós das extremidades da deque. O objeto é imutável, e como a implementação é funcional, podemos usá-la de forma persistente, como no seguinte exemplo:
Métodos Públicos | |
Deque () | |
Construtor vazio. Mais... | |
Deque & | operator= (const Deque &o) |
Deque (const Deque &o) | |
Campos de Dados | |
Node< T > * | first |
Primeiro nó. Mais... | |
Node< T > * | last |
Ultimo nó. Mais... | |
Operações de Acesso | |
const T & | Front () const |
Acesso ao primeiro elemento. Mais... | |
const T & | Back () const |
Acesso ao último elemento. Mais... | |
const T & | K_th (int k) const |
Acesso ao k-ésimo elemento. Mais... | |
Operações de Modificação | |
Estas funções retornam uma cópia modificada da deque, e não alteram o objeto na qual são chamadas. | |
Deque< T > | Swap () const |
Inverte a deque. Mais... | |
Deque< T > | PushFront (const T &x) const |
Inserção no início. Mais... | |
Deque< T > | PushBack (const T &x) const |
Inserção no final. Mais... | |
Deque< T > | PopFront () const |
Remoção do início. Mais... | |
Deque< T > | PopBack () const |
Remoção do final. Mais... | |
Construtores & Destrutores
persistence::deque1::Deque< T >::Deque | ( | ) |
Construtor vazio.
Constrói uma deque sem nenhum elemento.
Métodos
const T& persistence::deque1::Deque< T >::Back | ( | ) | const |
Acesso ao último elemento.
- Retorna
- O valor do último elemento da deque.
- Pré-Condição
- A deque não deve estar vazia.
const T& persistence::deque1::Deque< T >::Front | ( | ) | const |
Acesso ao primeiro elemento.
- Retorna
- O valor do primeiro elemento da deque.
- Pré-Condição
- A deque não deve estar vazia.
const T& persistence::deque1::Deque< T >::K_th | ( | int | k | ) | const |
Acesso ao k-ésimo elemento.
- Parâmetros
-
k O índice do elemento desejado. 0 é o primeiro elemento.
- Retorna
- O valor do k-ésimo elemento da deque.
- Pré-Condição
0 ≤ k < n
, onden
é o tamanho da deque.
Deque<T> persistence::deque1::Deque< T >::PopBack | ( | ) | const |
Remoção do final.
- Retorna
- Uma cópia da deque, mas sem seu último elemento.
- Pré-Condição
- A deque não deve estar vazia.
Deque<T> persistence::deque1::Deque< T >::PopFront | ( | ) | const |
Remoção do início.
- Retorna
- Uma cópia da deque, mas sem seu primeiro elemento.
- Pré-Condição
- A deque não deve estar vazia.
Deque<T> persistence::deque1::Deque< T >::PushBack | ( | const T & | x | ) | const |
Inserção no final.
- Parâmetros
-
x Valor a ser adicionado no final da deque.
- Retorna
- Uma cópia da deque, mas com
x
como último elemento.
Deque<T> persistence::deque1::Deque< T >::PushFront | ( | const T & | x | ) | const |
Inserção no início.
- Parâmetros
-
x Valor a ser adicionado no início da deque.
- Retorna
- Uma cópia da deque, mas com
x
como primeiro elemento.
Deque<T> persistence::deque1::Deque< T >::Swap | ( | ) | const |
Inverte a deque.
- Retorna
- Uma cópia da deque, mas com a ordem dos elementos invertida.
- Anotações
- Apesar de ser uma função interessante por si só, esta função é principalmente usada para reduzir a quantidade de código para operações de Front ou Back, já que estas são simétricas.
Campos
Node<T>* persistence::deque1::Deque< T >::first |
Node<T>* persistence::deque1::Deque< T >::last |
Ultimo nó.
- Veja também
- first para mais informação.
A documentação para esta classe foi gerada a partir do seguinte arquivo:
- /home/travis/build/yancouto/mestrado/source/persistence/Deque1.hpp