Deques - Estrutura de Dados
4 pág.

Deques - Estrutura de Dados


DisciplinaEstruturas de Dados I581 materiais2.532 seguidores
Pré-visualização1 página
Lucas de Lima 
Turma B 
 
DEQUE 
 
Definição: 
 É um tipo abstrato de dados que generaliza uma FILA . Na ciência da 
computação, uma fila duplamente terminada é abreviada como deque ( D ouble 
E nded Que ue, no português: fila com duas saídas, mas, às vezes também é 
chamada de lista encadeada cabeça-cauda, porém esse termo é menos utilizado. O 
deque é um tipo de fila, com uma prioridade. Só é possível inserir elementos em 
ambos os lados (tanto no seu início como no seu final) mesmo que 
desproporcionalmente, desde que não ultrapasse o limite máximo. É importante 
notar que os elementos só podem ser inseridos nas extremidades do deque. Este 
tipo de estrutura de dados, pode simular tanto uma fila como uma pilha, pois 
possuem as operações elementares que permitem realizar as inserções e remoções 
que caracterizam estes dois tipos de estruturas de dados. Os deques são também 
muito usados em diversos tipos de aplicações computacionais, dada a sua 
flexibilidade no que diz respeito à inserção e remoção dos dados. 
 
Implementação: 
Um deque é implementado usualmente usando uma estrutura chamada 
deque circular, para facilitar as operações de inserção e remoção em ambas as 
extremidades. Deques circulares são duplamente encadeados, ou seja, tem duas 
extremidades onde o início e o fim do vetor são unidos. Essa estrutura, como dita 
anteriormente, facilita a inserção e remoção de elementos, por não precisar 
percorrer todo o deque para chegar no último elemento e vice versa. 
 A implementação de um deque por alocação dinâmica ou estática é feita 
definindo um tamanho máximo para o deque e duas variáveis inteiras que indicam o 
topo e a base. 
 A TAD Deque é dividida pelo total de posições em duas extremidades, onde o 
total não pode ser extrapolado, senão ocorre o estouro da memória (overflow), que 
já foi programada para uma determinada quantidade, não havendo possibilidade de 
mudança após já se ter definido o total. 
 
 
 
 
 
Exemplo de implementação com vetor: 
[3] 
 
Exemplo de implementação com listas ligadas:
[3] 
- Na implementação através de listas ligadas, a utilização de uma lista 
duplamente encadeada torna a implementação mais eficiente. 
- Remover o nó do final é mais eficiente em uma lista duplamente encadeada 
do que em uma lista simplesmente encadeada. 
 
 
 
 
 
Exemplos de implementação: 
 
Fila para compra de ingressos 
 
Um exemplo prático de Double Queue seria uma fila para compra de um ingresso, a 
pessoa que compra o ingresso sai da fila mas pode voltar com prioridade para uma 
eventual alteração ou devolução, sem precisar enfrentar a fila novamente. Da 
mesma forma, a última pessoa da fila pode desistir por algum motivo. Em ambos os 
casos, temos uma inserção/remoção no início e fim da fila, sem alterar os demais 
elementos. 
 
 
 
Histórico de Navegação 
 
-> URL no histórico de navegação, frequentemente a URL é colocada à frente da fila 
e a mais antiga removida. * 
-> Operações "desfazer" em softwares. * 
-> Vídeo DEQUE Works - Download realizado 
 
 
 
 
 
Fontes: 
[1]. https://pt.wikipedia.org/wiki/Deque_(estruturas_de_dados) 
[2]. http://www.inf.ufsc.br/~r.mello/ine5384/9-Deques.pdf 
[3]. http://osorio.wait4.org/oldsite/prog2/prog2-dequeestatico.pdf 
[4]. http://cic.unb.br/~alchieri/disciplinas/graduacao/ed/pilhas_filas_deques.pdf