Sem resumo de edição |
Sem resumo de edição |
||
| Linha 20: | Linha 20: | ||
• Esvaziar: esvazia a fila. | • Esvaziar: esvazia a fila. | ||
As filas são úteis em diversas aplicações, como por exemplo, os sistemas operacionais, que utilizam filas para gerenciar o escalonamento dos processos que serão executados pelo processador e a alocação de recursos. | |||
Uma fila possui elementos característicos, sem os quais torna-se impossível sua manipulação: | |||
- Frente: é a posição que indica o próximo elemento a ser acessado. | - Frente: é a posição que indica o próximo elemento a ser acessado. | ||
| Linha 33: | Linha 33: | ||
Operações: | Operações: | ||
Temos as operações de inicialização de uma fila, inserção de um elemento e retirada de um elemento. | |||
- Inicialização: dizemos que uma fila F está vazia, quando sua frente e seu fim for igual a zero, ou seja, não existe nenhuma posição da estrutura ocupada por algum elemento. | - Inicialização: dizemos que uma fila F está vazia, quando sua frente e seu fim for igual a zero, ou seja, não existe nenhuma posição da estrutura ocupada por algum elemento. | ||
Edição das 23h55min de 8 de dezembro de 2025
- Estrutura de Dados - Fila
A fila é um tipo especial de lista, onde os elementos são inseridos em uma extremidade, chamada início da fila, e retirados na extremidade oposta, chamada final da fila (figura 1). Esta característica é conhecida como FIFO (First In, First Out - Primeiro a Entrar, Primeiro a Sair). Desta forma, o primeiro elemento que foi inserido na fila será o primeiro elemento a ser removido. A estrutura fila pode ser comparada a uma fila de banco. O primeiro cliente que chegou, será o primeiro a ser atendido. Também a fila pode ser implementadas de forma estática, é uma estrutura de dados implementada sobre um vetor de tamanho fixo, definido previamente pelo programador, ou dinâmica, é construída sobre uma lista encadeada, o que significa que sua capacidade pode crescer de acordo com a necessidade do programa, restringida apenas pela memória disponível.
A estrutura de dados fila, como seu próprio nome já sugere, é semelhante ao funcionamento de uma fila de banco. Onde: 1) Se não há ninguém na fila e chega uma pessoa, está será o inicio e o fim da fila; 2) A partir de então, qualquer pessoa que chegar irá para o final da fila (após a pessoa que está no fim); 3) Cada elemento a ser removido será do inicio da fila (O primeiro que chega na fila é o primeiro que sai).
As operações mais comuns efetuadas com filas são:
• Criar: cria uma fila vazia.
• Enfileirar: insere um elemento no fim da fila.
• Desenfileirar: remover um elemento no início da fila.
• Exibir início: exibe o elemento do início da fila.
• Exibir a quantidade: retorna a quantidade de elementos da fila.
• Esvaziar: esvazia a fila.
As filas são úteis em diversas aplicações, como por exemplo, os sistemas operacionais, que utilizam filas para gerenciar o escalonamento dos processos que serão executados pelo processador e a alocação de recursos.
Uma fila possui elementos característicos, sem os quais torna-se impossível sua manipulação:
- Frente: é a posição que indica o próximo elemento a ser acessado. - Fim: é a posição que indica o próximo elemento a ser inserido. - Tamanho: é o número máximo de posições permitidas na fila.
Tamanho = 7 Frente = 1 Fim = 4
Operações:
Temos as operações de inicialização de uma fila, inserção de um elemento e retirada de um elemento.
- Inicialização: dizemos que uma fila F está vazia, quando sua frente e seu fim for igual a zero, ou seja, não existe nenhuma posição da estrutura ocupada por algum elemento.
- Inserção: podemos inserir elementos até que o fim seja igual ao tamanho. Inserção de elementos além do tamanho da fila, configura-se um caso de overflow,ocorre quando uma operação excede a capacidade de armazenamento de um tipo de dado, resultando em erros inesperados.
-Remoção: podemos retirar elementos da fila, até que frente seja igual ao fim. Retirada de elementos além desta situação, configura-se um caso de undeflow, se refere a uma condição em que um valor é reduzido abaixo do limite mínimo que pode ser representado por um tipo de dado,levando a comportamentos inesperados no programa.
Outras variações de fila:
Fila Circular: Uma variação da fila simples, mas que reaproveita o espaço do array quando o fim é alcançado, “voltando” para o início. Isso evita o problema de “fila cheia falsa” e permite melhor utilização da memória. É muito usada em sistemas embarcados, buffers de comunicação e estruturas que precisam de alto desempenho contínuo.
Fila Dupla (Deque – Double Ended Queue):
É uma fila onde tanto o início quanto o fim podem receber inserções e remoções. Isso permite funções de fila e de pilha ao mesmo tempo. Usada em algoritmos de busca, navegadores (voltar/avançar), buffers deslizantes e estruturas mais flexíveis de dados.
Pergunta:
1- Qual é a regra básica de funcionamento de uma fila e como ela determina quem é atendido primeiro?
Referências:
BEZERRA, Cícero Aparecido. Introdução às estruturas de dados. Curitiba: UFPR, 2018. Disponível em: https://acervodigital.ufpr.br/xmlui/bitstream/handle/1884/55879/introducaoEstruturaDados.pdf?sequence=1&isAllowed=y. Acesso em: 07 dez. 2025.
BALIEIRO, Ricardo. Estrutura de dados. 1. ed. Rio de Janeiro: SESES, 2015. 176 p. Disponível em: https://hood.com.br/new/filegator/repository/Estrutura%20de%20Dados/10%20Livro%20Estrutura%20de%20Dados.pdf. Acesso em: 07 dez. 2025
CORTÉS, Mariela Inés. Estrutura de Dados. 3. ed. Fortaleza, CE: EdUECE, 2015. Disponível em: https://www.uece.br/cct/wp-content/uploads/sites/28/2021/07/Estrutura-de-Dados-2014.pdf. Acesso em: 07 dez. 2025.
UNIOESTE. Aulas Estruturas de Dados. Cascavel: Universidade Estadual do Oeste do Paraná, 2019. Disponível em: https://www.inf.unioeste.br/~adair/ED/Notas%20de%20Aula/Aulas%20Estruturas%20de%20Dados.pdf. Acesso em: 07 dez. 2025.
LUCCHESI, Cláudio L.; KOWALTOWSKI, Tomasz. Estruturas de Dados e Técnicas de Programação. Versão 1.12. Campinas: Instituto de Computação – UNICAMP, 2004. Disponível em: https://www.ic.unicamp.br/~mc202abcd/ln_tkcll.pdf. Acesso em: 07 dez. 2025.