Descrição Detalhada
template<class T>
class persistence::deque2::Deque< T >
Deque persistente de estrutura recursiva.
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 uma tecnica descrita por Kaplan e Tarjan [2] .
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 4 da tese é que aqui as funções não recebem a deque, mas são métodos desta. Além disso, as funções Pop não retornam o objeto removido, apenas a nova 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 (const Deque &o) | |
| Deque & | operator= (const Deque &o) |
Campos de Dados | |
| Node * | node |
| Nó principal. 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 > | 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::deque2::Deque< T >::Deque | ( | ) |
Construtor vazio.
Constrói uma deque sem nenhum elemento.
Métodos
| const T& persistence::deque2::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::deque2::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::deque2::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::deque2::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::deque2::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::deque2::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
xcomo último elemento.
| Deque<T> persistence::deque2::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
xcomo primeiro elemento.
Campos
| Node* persistence::deque2::Deque< T >::node |
Nó principal.
Este é o nó que representa a deque inteira.
- Veja também
- Node para saber a razão desta classe não ter o tipo
T.
A documentação para esta classe foi gerada a partir do seguinte arquivo:
- /home/travis/build/yancouto/mestrado/source/persistence/Deque2.hpp

1.8.6