Fila circular

0 respostas
edmilsonalves

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();
	}
}
Criado 24 de maio de 2011
Respostas 0
Participantes 1