Uma estrutura de dados é uma maneira de armazenar e relacionar conjuntos de informações de forma organizada e, na maioria das vezes, sequencial. Estas estruturas são muito importantes quando precisamos armazenar um conjunto de dados para ser utilizado em um determinado software. Na computação, há diversos tipos de estruturas de dados que podem ser utilizadas para diferentes fins. Vimos nos artigos anteriores o que é e como funciona a Estrutura de Dados Lista e o que é e como funciona a Estrutura de dados Pilha. Neste artigo veremos o que é e como funciona a Estrutura de Dados Fila.
Curso Python - Estrutura de dados - Parte 1
Conhecer o cursoO que é uma Fila?
Fila são estruturas de dados bastante utilizadas na computação, onde o primeiro elemento a ser inserido, será também o primeiro a ser retirado. Desta forma, serão adicionados elementos no fim e removê-los pelo início.
A estrutura de dados fila segue um padrão conhecido como FIFO (first-in first-out), onde o primeiro a entrar é o primeiro a sair.
Imagine o exemplo de um fila do banco, onde diversos usuários a compõe em uma manhã de sexta-feira.
A senhora que chegou a fila às 7 da manhã se posiciona na fila. Como ela foi a primeira a chegar, estará no início da fila, a partir daí todos os usuários do banco que chegarem terão que se posicionar depois da senhora. Ao iniciar o atendimento, o primeiro usuário (início da fila) será atendido. Ao fazer isso, este sairá da fila e o elemento (usuário) que estava atrás deste passará a ser o início da fila. Este comportamento seguirá até que nenhum outro usuário se posicione ao final da fila e todos os usuários da fila sejam atendidos, tornando-a vazia.
Entre os exemplos de uso de uma fila em um sistema, podemos citar a troca de mensagens entre computadores conectados em uma rede ou até mesmo o controle de documentos para impressão, onde as páginas serão impressas da 1 até a 100, por exemplo.
Curso Java - Estrutura de dados - Parte 1
Conhecer o cursoComo funciona
Como citado acima, imagine uma fila de um banco. Ao iniciar o atendimento, o primeiro usuário que chegar à fila se posicionará em seu início.
A partir daí, todos os usuários que chegarem à fila serão posicionados ao final dela. À essa funcionalidade de inserção damos o nome de enqueue.
Sempre que um usuário for chamado para ser atendido, este é removido da fila e o usuário que estava na próxima posição passará a ser o início da fila. À essa funcionalidade de remoção damos o nome de dequeue.
Este processo se repete até que a fila esteja vazia e nenhum usuário tenha que ser atendido.