Referência da Template de Classe persistence::queue::Queue< T >

Descrição Detalhada

template<class T>
class persistence::queue::Queue< T >

Fila persistente.

A fila é implementada usando a pilha persistente, já que esta permite acesso ao k-ésimo elemento, e isto é o bastante para usá-la como uma fila.

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 2 da tese é que aqui as funções não recebem a fila, mas são métodos desta.

Um object Queue consiste de uma pilha e um inteiro indicando o número de elementos já removidos desta. O objeto é imutável, e como a implementação é funcional, podemos usá-la de forma persistente, como no seguinte exemplo:

using namespace persistence::queue;
Queue<int> q1; // ()
Queue<int> q2 = q1.Enqueue(1); // (1)
Queue<int> q3 = q2.Enqueue(2); // (1, 2)
Queue<int> q4 = q3.Enqueue(0); // (1, 2, 0)
Queue<int> q5 = q2.Dequeue(); // (2)

Métodos Públicos

 Queue ()
 Construtor de fila vazia.
 

Campos de Dados

Stack< T > stack
 Pilha associada. Mais...
 
int rem
 Contagem de elementos removidos. Mais...
 

Operações de acesso

const T & First () const
 Primeiro elemento da fila. Mais...
 
const T & K_th (int k) const
 k-ésimo elemento. Mais...
 
int Size () const
 Tamanho da fila. Mais...
 

Operações de Modificação

Estas funções retornam uma cópia modificada da fila, e não alteram o objeto na qual são chamadas.

Queue< T > Enqueue (const T &x) const
 Inserção de valor. Mais...
 
Queue< T > Dequeue () const
 Remoção do início. Mais...
 

Métodos

template<class T>
Queue<T> persistence::queue::Queue< T >::Dequeue ( ) const

Remoção do início.

Retorna
Uma cópia desta fila sem seu primeiro elemento.
Pré-Condição
A fila não deve estar vazia.
template<class T>
Queue<T> persistence::queue::Queue< T >::Enqueue ( const T &  x) const

Inserção de valor.

Parâmetros
xValor a ser adicionado.
Retorna
Uma cópia desa fila com o valor x em seu final.
template<class T>
const T& persistence::queue::Queue< T >::First ( ) const

Primeiro elemento da fila.

Retorna
O valor do primeiro elemento da fila.
Pré-Condição
A fila não deve estar vazia.
Veja também
K_th
Exemplo
queue::Queue<int> q;
q = q.Enqueue(2);
q = q.Enqueue(3);
q.First(); // retorna 2
q.Dequeue().First() // retorna 3
template<class T>
const T& persistence::queue::Queue< T >::K_th ( int  k) const

k-ésimo elemento.

Parâmetros
kO elemento desejado. 1 é o primeiro elemento da fila.
Retorna
O valor do k-ésimo elemento da fila.
Pré-Condição
1 ≤ k ≤ #size
Anotações
First() é equivalente a K_th(1)
Exemplo
queue::Queue<int> q;
q = q.Enqueue(2);
q = q.Enqueue(3);
q.K_th(1); // retorna 2
q.K_th(2) // retorna 3
template<class T>
int persistence::queue::Queue< T >::Size ( ) const

Tamanho da fila.

Retorna
O tamanho da fila

Campos

template<class T>
int persistence::queue::Queue< T >::rem

Contagem de elementos removidos.

Esta variável conta quantas vezes Dequeue já foi chamada.

template<class T>
Stack<T> persistence::queue::Queue< T >::stack

Pilha associada.

A fila consiste dos elementos de stack, ignorando os rem primeiros.


A documentação para esta classe foi gerada a partir do seguinte arquivo:
  • /home/travis/build/yancouto/mestrado/source/persistence/Queue.hpp