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
x
como ú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
x
como 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