Módulo 3 - Filas: o primeiro a chegar é o primeiro a sair
Enfileirar e desenfileirar: as operações da fila
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 12/07/2026
O que você vai aprender
- Usar a operação de enfileirar para adicionar um elemento no fim da fila.
- Usar a operação de desenfileirar para remover o elemento da frente.
- Prever a ordem de saída de uma sequência de enfileiramentos.
- Reconhecer usos reais: impressão, filas de tarefas e buffers.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Enfileirar e desenfileirar: as operações da fila.
Os objetivos desta aula. Usar a operação de enfileirar para adicionar um elemento no fim da fila. Usar a operação de desenfileirar para remover o elemento da frente. Prever a ordem de saída de uma sequência de enfileiramentos. Reconhecer usos reais: impressão, filas de tarefas e buffers.
Veja o essencial, parte por parte.
Duas operações, uma em cada ponta. Enfileirar adiciona um elemento no fim da fila (chegar e ir para o final).
Prever quem sai primeiro. O jeito mais seguro de acompanhar uma fila é imaginar a fila de verdade se formando.
Para que a fila serve na prática. Enfileirar sempre no fim; desenfileirar sempre na frente. Trocar as pontas transforma a fila numa pilha.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Duas operações, uma em cada ponta
Assim como a pilha tinha empilhar e desempilhar, a fila tem enfileirar e desenfileirar. A diferença é que na fila cada operação trabalha uma ponta diferente. Enfileirar, também chamado de enqueue, coloca um novo elemento no fim da fila, exatamente como quem chega ao banco e vai para o final. Desenfileirar, ou dequeue, tira o elemento da frente, o mais antigo dos que esperam, como quem é finalmente chamado no guichê e sai da fila. Repare que você nunca mexe no meio: entra sempre pelo fim, sai sempre pela frente. É essa disciplina de pontas que mantém a ordem justa e que torna a fila previsível.
fila <- [] // fila vazia
enfileirar(fila, "Ana") // fila: [Ana]
enfileirar(fila, "Bruno") // fila: [Ana, Bruno]
enfileirar(fila, "Célia") // fila: [Ana, Bruno, Célia]
// desenfileirar tira sempre a FRENTE (o mais antigo):
proximo <- desenfileirar(fila) // proximo = Ana; fila: [Bruno, Célia]
escreva(proximo) // mostra AnaEnfileirar joga no fim; desenfileirar tira da frente. Ana entrou primeiro, então Ana sai primeiro.
Prever quem sai primeiro
O jeito mais seguro de acompanhar uma fila é imaginar a fila de verdade se formando. A cada enfileirar, alguém entra no final; a cada desenfileirar, o primeiro da frente vai embora. Como a ordem nunca é invertida, quem entrou primeiro sempre sai primeiro, não importa quantos entrem no meio do caminho. Esse é o ponto que mais confunde quem vem da pilha: na pilha, o último a entrar era o próximo a sair, então você olhava para o topo mais recente; na fila, você olha sempre para o mais antigo que ainda está lá. Treinar essa previsão é o que fixa a diferença entre as duas estruturas.
🎮 Jogo da aula
Quem sai da fila?
Acompanhe os enfileiramentos e desenfileiramentos e descubra o que o programa mostra no final.
fila <- []
enfileirar(fila, "X")
enfileirar(fila, "Y")
desenfileirar(fila)
enfileirar(fila, "Z")
desenfileirar(fila)
escreva(desenfileirar(fila))Para que a fila serve na prática
As operações ganham sentido quando você vê onde a fila trabalha de verdade. Uma impressora compartilhada guarda os documentos numa fila e imprime na ordem em que foram enviados: cada envio é um enfileirar, cada impressão é um desenfileirar. Um servidor que recebe muitos pedidos ao mesmo tempo coloca as tarefas numa fila e as executa uma a uma, sem perder nenhuma nem trocar a ordem. Um vídeo que você assiste online chega em pedaços que entram num buffer, uma fila que segura os pedaços na ordem certa até serem exibidos. Em todos esses casos, o par enfileirar e desenfileirar é o motor invisível que mantém tudo em sequência.
Teste rápido
Em qual ponta da fila cada operação trabalha?
Perguntas frequentes
- Enfileirar e empilhar são a mesma coisa?
- Não. Empilhar coloca no topo da pilha, o mesmo lugar de onde se tira, então o último a entrar sai primeiro. Enfileirar coloca no fim da fila, longe da frente de onde se tira, então o primeiro a entrar sai primeiro. Os nomes parecem, mas o resultado é oposto: uma inverte a ordem, a outra preserva.
- Posso remover um elemento do meio da fila?
- Na fila pura, não. A disciplina da fila é entrar pelo fim e sair pela frente, sem mexer no meio, e é isso que garante a ordem FIFO. Estruturas mais gerais, como a lista ligada, permitem remover do meio, mas aí você já não tem mais uma fila simples, e sim outra estrutura com outras regras.
- O que acontece se eu desenfileirar uma fila vazia?
- Depende de como o programa trata esse caso. O correto é checar antes se a fila tem algum elemento; se estiver vazia, não há o que tirar, e tentar mesmo assim costuma gerar erro ou um valor inválido. É o mesmo cuidado de borda que se toma antes de desempilhar uma pilha vazia.
- O que é o buffer de um vídeo, em termos de fila?
- É uma fila que segura os pedaços do vídeo que já chegaram pela internet, na ordem em que chegaram, até que o player os exiba. Cada pedaço recebido é enfileirado; cada pedaço exibido é desenfileirado. Quando a conexão cai, o buffer segura o que tem para você não parar de assistir na hora.
- A ordem de saída pode mudar se eu intercalar as operações?
- A ordem relativa entre os que estão na fila nunca muda: quem entrou antes sai antes. Intercalar enfileirar e desenfileirar muda quantos estão na fila num dado momento, mas não a regra. Para prever o resultado, basta simular a fila crescendo pelo fim e diminuindo pela frente, passo a passo.
- Por que existe uma estrutura pronta chamada deque?
- Porque implementar uma fila só com uma lista comum pode ser ineficiente ao remover da frente. Linguagens oferecem estruturas otimizadas, como o deque do Python, feitas para adicionar e remover nas duas pontas rapidamente. A ideia lógica de enfileirar e desenfileirar continua a mesma; muda só a eficiência por baixo.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.