Tópico 07 - Filas

Tópico 07: Filas

Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Fila


Estrutura de dados do tipo FIFO (First In, First Out), ou seja, o primeiro elemento a ser inserido é o primeiro a ser removido.

Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Exemplos

  • Fila do Banco: o primeiro cliente a entrar na fila é o primeiro a ser atendido.
  • Fila de impressão: o primeiro documento enviado para a impressora é o primeiro a ser impresso.

Exemplos de Uso

  • Fila de tarefas em sistemas operacionais.
  • Fila de mensagens em sistemas de comunicação.
  • Fila de impressão em sistemas de gerenciamento de impressão.
Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Características

  • Acesso restrito: Apenas o elemento na frente da fila pode ser acessado diretamente.
  • Operações principais: As operações básicas são enqueue (inserir) e dequeue (remover).
  • Sem pesquisa: Não é possível acessar elementos internos da fila diretamente.
Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Métodos

  • Enfileirar/Enqueue: Adiciona um elemento no final da fila.
  • Desenfileirar/Dequeue: Remove o elemento da frente da fila.
  • Frente/Front: Retorna o elemento da frente da fila sem removê-lo.
  • Verificar se está vazia: Retorna verdadeiro se a fila estiver vazia
  • Verificar se está cheia: Retorna verdadeiro se a fila estiver cheia
Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Inicialização

classe FilaCircular:
    capacidade: inteiro
    inicio: inteiro
    fim: inteiro
    quantidade: inteiro
    valores: vetor de inteiros

    construtor(capacidade):
        este.capacidade <- capacidade
        este.inicio <- 0
        este.fim <- -1
        este.quantidade <- 0
        este.valores <- vetor de inteiros com tamanho capacidade
Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Verificando se a Fila está Vazia

esta_vazia():
    retorne quantidade == 0

Para verificar se a fila está vazia, podemos utilizar o método esta_vazia(), que retorna verdadeiro se a quantidade da fila for igual a 0.

Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Verificando se a Fila está Cheia

esta_cheia():
    retorne quantidade == capacidade

Para verificar se a fila está cheia, podemos utilizar o método esta_cheia(), que retorna verdadeiro se a quantidade da fila for igual à capacidade máxima da fila.

Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Inserção de Elementos

enfileirar(valor):
    se esta_cheia() então
        retorne "Fila cheia"
    senao:
        fim <- (fim + 1) mod capacidade
        valores[fim] <- valor
        quantidade <- quantidade + 1

Todo elemento é inserido no final da fila, ou seja, o último elemento que foi inserido. Se a fila estiver cheia, o método retorna uma mensagem de erro.

Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Verificando o Elemento da Frente

frente():
    se esta_vazia() então
        retorne "Fila vazia"
    senao:
        retorne valores[inicio]

Podemos verificar qual é o elemento que está na frente da fila, ou seja, o primeiro elemento que foi inserido, sem removê-lo. Se a fila estiver vazia, o método retorna uma mensagem de erro.

Estrutura de Dados - Professor Ramon Venson - SATC 2026.2
Tópico 07 - Filas

Remoção de Elementos

desenfileirar():
    se esta_vazia() então
        retorne "Fila vazia"
    senao:
        valor <- valores[inicio]
        inicio <- (inicio + 1) mod capacidade
        quantidade <- quantidade - 1
        retorne valor

Só podemos remover o elemento que está na frente da fila, ou seja, o primeiro elemento que foi inserido. Se a fila estiver vazia, o método retorna uma mensagem de erro.

Estrutura de Dados - Professor Ramon Venson - SATC 2026.2