Leia isso em outros idiomas: English, Português
- O quê é uma fila?
- Onde filas são usadas?
- Qual é a estrutura de uma fila?
- Quais são as operações básicas de uma fila?
Uma fila é uma estrutura de dados linear em que elementos são inseridos em uma extremidade (final da fila) e retirados da outra (início da fila). Por essa característica, filas também são conhecidas como estruturas FIFO (First-In First-Out, Primeiro a Entrar Primeiro a Sair).
Uma analogia para essa estrutura de dados são as filas de supermercado. Pessoas entram no final da fila e aguardam sua vez, enquanto pessoas do início da fila a deixam e são atendidas.
- Gerenciamento de processos em sistemas operacionais. Tarefas são adicionadas a uma fila para serem executadas e as tarefas são removidas da fila quando são concluídas.
- Transmissão de pacotes em redes de computadores. Pacotes são adicionados a uma fila para serem transmitidos e são removidos da fila quando são entregues.
- Algoritmos de busca em inteligência artificial. Estados são adicionados à fila para serem explorados e são removidos da fila quando são processados.
Uma fila f pode ser construída com os seguintes componentes:
f.celulas[]: células que armazenam os elementos da fila.f.primeiro: um ponteiro que referencia o primeiro elemento da fila.f.ultimo: um ponteiro que referencia o último elemento da fila.f.comprimento: um inteiro que conta o número de elementos na fila.
comprimento()retorna o comprimento de uma fila.enfileirar()insere um elemento no final de uma fila.desenfileirar()remove o elemento do início de uma fila.
- Retorne o valor de
f.comprimento.
- Atualize o ponteiro de último da fila
f.ultimopara referenciar uma nova célula. - Armazene o elemento
xna célula referenciada pelo ponteiro de último da filaf.ultimo. - Incremente em uma unidade o contador de comprimento da fila
f.comprimento.
- Verifique se a fila
festá vazia. Em caso afirmativo, vá para o passo 2. Caso contrário, vá para o passo 3. - A fila está vazia, então retorne
"fila vazia". - Salve em
xo elemento referenciado pelo ponteiro de primeiro da filaf.primeiro. - Atualize o ponteiro de topo da fila
f.primeiropara referenciar a célula anterior à primeira atual da fila. - Decremente em uma unidade o contador de comprimento da fila
f.comprimento. - Retorne o elemento
x.