Queue
Uma queue (fila) é uma estrutura de dados que organiza elementos seguindo a regra FIFO — First In, First Out. A analogia mais comum é uma fila de pessoas: quem chega primeiro é atendido primeiro.
Assim como outras estruturas, o mais importante não é a implementação, mas as regras de acesso aos dados.
Conceito
O que é uma Queue?
Uma queue (fila) é uma estrutura de dados que organiza elementos seguindo a regra:
FIFO — First In, First Out
(O primeiro a entrar é o primeiro a sair)
A analogia mais comum é uma fila de pessoas: quem chega primeiro é atendido primeiro.
Assim como outras estruturas, o mais importante não é a implementação, mas as regras de acesso aos dados.
Funcionamento
Funcionamento
Em uma queue, as operações acontecem em extremidades opostas:
- inserção ocorre no final da fila
- remoção ocorre no início da fila
Também é possível consultar o elemento que está no início sem removê-lo.
Essa separação garante que os elementos sejam processados na ordem correta.
Inserção
Inserção (Enqueue)
Inserir em uma queue significa adicionar um elemento ao final da estrutura.
Exemplo:
[10, 20, 30] Após inserção de um novo valor 40:
[10, 20, 30, 40] Nenhum elemento precisa ser deslocado.
Complexidade: O(1)
Remoção
Remoção (Dequeue)
A remoção ocorre sempre no início da fila.
Exemplo:
[10, 20, 30, 40] Após remoção:
[20, 30, 40] Em implementações eficientes, não há necessidade de deslocar todos os elementos.
Complexidade: O(1)
Leitura
Leitura (Front/Peek)
É possível acessar o elemento que está no início da fila sem removê-lo.
Exemplo:
[10, 20, 30] Resultado:
10 Complexidade: O(1)
Busca
Busca
Queues não são projetadas para busca eficiente.
Para encontrar um elemento, é necessário percorrer a estrutura de forma sequencial.
Complexidade: O(N)
Uso
Quando usar uma Queue?
Queues são utilizadas quando é necessário processar elementos na ordem em que chegam.
Cenários comuns incluem:
- processamento de tarefas em ordem de chegada
- gerenciamento de requisições em sistemas
- controle de acesso a recursos compartilhados
- algoritmos que exploram estruturas em camadas
Sempre que a ordem de processamento for importante, a queue é uma escolha adequada.
Resumo
Resumo de Complexidades
| Operação | Complexidade |
|---|---|
| Inserção (Enqueue) | O(1) |
| Remoção (Dequeue) | O(1) |
| Leitura (Front) | O(1) |
| Busca | O(N) |