Magna Concursos
3640180 Ano: 2025
Disciplina: TI - Desenvolvimento de Sistemas
Banca: Consulplan
Orgão: Pref. Nova Iguaçu-RJ

Um desenvolvedor está implementando uma estrutura de dados do tipo fila em Java. Ele iniciou a implementação da classe Fila utilizando um array para armazenar os elementos:

public class Fila {
  private int[] elementos;
  private int tamanho;
  private int inicio;
  private int fim;
  public Fila(int capacidade) {
    elementos = new int[capacidade];
    tamanho = 0;
    inicio = 0;
    fim = -1;
  }

  public boolean estaVazia() {
    return tamanho == 0;
  }

  public boolean estaCheia() {
    return tamanho == elementos.length;
  }

  public void enfileirar(int elemento) {
    if (estaCheia()) {
      System.out.println("Fila está cheia. Não é possível enfileirar.");
      } else {
        fim = (fim + 1) % elementos.length;
      elementos[fim] = elemento;
      tamanho++;
    }
  }

  public int desenfileirar() {
    if (estaVazia()) {
      System.out.println("Fila está vazia. Não é possível desenfileirar.");
      return -1;
    } else {
      int elementoRemovido = elementos[inicio];
      inicio = (inicio + 1) % elementos.length;
      tamanho--;
      return elementoRemovido;
    }
  }
}

No método enfileirar, qual é a finalidade da expressão (fim + 1) % elementos.length?

 

Provas

Questão presente nas seguintes provas

Técnico Programador de Computação

50 Questões