🎯 Filas (Computação)

Em poucas palavras

Uma Estruturas de Dados linear que segue a regra FIFO (First In, First Out): o primeiro elemento a entrar é, obrigatoriamente, o primeiro a ser removido. Pense nela como uma fila de banco do mundo real.


📝 Notas e Desenvolvimento

  • Princípio Fundamental: O acesso aos dados é restrito. Você só insere no final (tail/rear) e remove do início (head/front).
  • Operações Principais:
    • enqueue(): Adiciona um elemento ao final da fila.
    • dequeue(): Remove o elemento da frente da fila.
    • peek() ou front(): Apenas observa o primeiro elemento sem removê-lo.
    • isEmpty(): Verifica se a fila está vazia.
  • Complexidade de Tempo: Em implementações eficientes, tanto a inserção quanto a remoção são .

Tipos Comuns de Filas:

  1. Fila Simples: A forma padrão (FIFO).
  2. Fila Circular: O último elemento se conecta ao primeiro, otimizando o uso de memória em arrays fixos.
  3. Fila de Prioridade (Priority Queue): Cada elemento tem um “peso”. Elementos com maior prioridade saem antes, independentemente da ordem de chegada.
  4. Deque (Double-Ended Queue): Permite inserção e remoção em ambas as extremidades.

🔗 Conexões e Contexto

  • Atlas: MdC - Programação
  • Notas Relacionadas:
    • Sistemas Operacionais: Escalonamento de processos (CPU scheduling) e gerenciamento de IO (filas de impressão).
    • Redes: Buffers de pacotes em roteadores para gerenciar tráfego.
    • Algoritmos: É a estrutura base para a Busca em Largura (BFS) em grafos.
    • Mensageria: Sistemas como RabbitMQ ou Apache Kafka utilizam o conceito de filas para comunicação assíncrona entre serviços.

📚 Referências e Fontes