Considere o programa Java que manipula uma estrutura de dados fila.

import javax.swing.*;
class Fila{
    int inicio, fim, tamanho, qtdeElementos;
    int f[];

    public Fila(){
       inicio = fim = -1;
       tamanho = 100;
       f = new int[tamanho];
       qtdeElementos = 0;
    }

    public I{
       if (qtdeElementos == tamanho - 1){
          return true;
       }
       return false;
    }

    public II {
       if (qtdeElementos == 0){
          return true;
       }
       return false;
    }
    public void mostrar(){
       String elementos = "";
          for (int i = inicio; i<=fim; i++) {
             elementos += f[i]+ " - ";
          }
          JOptionPane.showMessageDialog(null, elementos);
    }


    public III {
       if (! estaCheia()){
          if (inicio == -1){
             inicio = 0;
          }
          fim++;
          f[fim] = e;
          qtdeElementos++;
       }
    }

    public IV{
       if (! estaVazia() ){
          inicio++;
          qtdeElementos--;
       }
    }
}


public class FilaTeste {
    public static void main(String[] args) {
       Fila f = new Fila();
       f.inserir(10);
       f.inserir(12);
       f.inserir(30);
       f.mostrar();
       f.remover();
       f.mostrar();
    }
}

Os métodos numerados de I a IV, são, correta e respectivamente, definidos como: