ola pessoal, fiz esse codigo que representa uma fila circular, mais não esta correto, ate consigo inserir os valores mais não consigo removelos, e mesmo inserindo ele não
insere corretamente, alquem poderia me ajudar por favor ...
public class FilaCircular {
static final int TAMANHO = 5;; //-- tamanho do arranjo
/* outros elementos constantes do item*/
static int inicio;
static int fim;
static int[]vetor = new int[TAMANHO];
public void iniciarFilaC(){
inicio = vetor.length -1;
fim = vetor.length - 1;
}
public static boolean filaCVazia (){
if(fim==inicio){
return true;
}
else{
return false;
}
}
public boolean filaCCheia (){
int posicao;
if (fim == vetor.length-1){
posicao = 0;
}
else{
posicao = fim + 1;
}
if (inicio== posicao){
return true;
}
else{
return false;
}
}
public void incluirFilaC (int valor){
if (filaCCheia()){
System.out.print("erro");
}
//-- ocorreu transbordo da capacidade (overflow)
else if (fim < vetor.length - 1){
fim = fim + 1;
print();
}
else{
fim = 0;
}
vetor[fim ] = valor;
System.out.println("Inserindo elemento:" + vetor[fim]);
}
public int removerFilaC (){
int valor;
if (filaCVazia()){
System.out.print("erro");
}
else if (inicio < vetor.length - 1){
inicio = inicio + 1;
print();
}
else{
inicio = 0;
}
valor = vetor[inicio];
System.out.println("removendo elemento:" + vetor[inicio]);
return valor;
}
public void print() {
System.out.println("***********************************************");
System.out.println("Fila=[inicio=0, fim=" + fim + "]");
for (int i = 0; i < fim; i++) {
System.out.println("Elemento na pos " + i + ", valor:" + vetor[i]);
}
System.out.println(" ");
}
public static void main(String[] args) {
FilaCircular f = new FilaCircular();
f.incluirFilaC(8);
f.incluirFilaC(6);
f.incluirFilaC(10);
f.removerFilaC();
for(int i=0;i<vetor.length;i++){
System.out.println("valores:" + vetor[i]);
}
//f.remover();
}
}