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)