Fila em java como passar inteiro e mostrar a "fila&quot

3 respostas
E

como retornar um int no metodo enfileirar?
segue o codigo:
obs>se estiver postado na secao errada peco que o mova por favor

/*- Implemente a Classe Fila com os seguintes Métodos
Enfileirar(int v)
Desenfileirar()
Primeiro_Elemento()
Mostra_Fila()
Limpa_Fila()
*/

// importa a JOptionPane para solicitar ao usuario o elemento

import javax.swing.JOptionPane;

//inicio da classe Fila implementada em Java
public class Fila{
	
	//todos os atributos serao private
	private int prim;
	private int ultim;
	private int tam;
	private int numElementos;
	private String conteudo[];
	
	//construtor Fila passando inteiro
	public Fila(int t) {
		this.tam = t;
		this.prim = -1;
		this.ultim = -1;
		this.numElementos = 0;
		this.conteudo=new String[t];
	
	}//fim do construtor
	
	//metodos gerais
	
	//metodo Enfileirar
	public void Enfileirar(String i) {
		
		if (estaCheia())
			return;
		
		this.ultim++;
		this.numElementos++;
		
		if (this.ultim > this.tam-1)
			this.ultim = 0;
			
		if (this.prim == -1)
			this.prim = 0;
			
		this.conteudo[this.ultim]=i;
	
	}//fim do metodo Enfileirar
	
	//metodo remover
	public String Remover() {

		if (estaVazia())
			return "";

		String aux = this.conteudo[this.prim];
		
		this.prim ++;
		this.numElementos--;
				
		if (this.prim > this.tam-1)
			this.prim = 0;
			
		return aux;
	}//fim do metodo remover
	
	//metodo Esvazia
	public void Limpa_Fila() {
		
		this.prim = -1;
		this.ultim = -1;
		this.numElementos = 0;
	}//fim do metodo esvazia
    
    //metodo primeiro da fila
	public String Primeiro_Elemento() {
		
		return this.conteudo[this.prim];
	}//fim do metodo primeiro
	
	//metodo ultimo da fila
	public String Ultim() {
		
		return this.conteudo[this.ultim];
	}//fim do metodo ultimo da fila

    //metodo get primeiro
	public int GetPrimeiro_Elemento() {
		
		return this.prim;
	}//fim do metodo get primeiro
	
	public int GetUltim() {
		
		return this.ultim;
	}
	
	//metodo estaVazia
	public boolean estaVazia() {
		
		//inicio do if
		if (this.numElementos == 0) {
			JOptionPane.showMessageDialog(null,"A fila esta vazia!!!","Fila",JOptionPane.WARNING_MESSAGE);
			return true;
			}//fim do if
		else
			return false;	
		
	}//fim do metodo esta vazia
	
    //metodo numero de elementos	
	public int numElementos() {
		
		return this.numElementos;
		
	}//fim do metodo numero de elementos
	
	//metodo esta cheia
	public boolean estaCheia() {
		
		//inicio do if
		if (this.numElementos == this.tam) {
			JOptionPane.showMessageDialog(null,"A fila esta cheia!","Fila",JOptionPane.WARNING_MESSAGE);
			return true;
			}//fim do if
		else
			return false;	
		
	}//fim do metodo esta cheia
	
	public void Mostra_Fila(){
		
		System.out.println(this.numElementos);
	}//fim do metodo Mostra_Fila
	
}//fim da classe fila

[color="red"]*Editado: use as tags BBCode em suas mensagens no forum. Jair Elton[/color]

3 Respostas

FieroddPJ

ola
eu respondi a duvida da pilha … talvez ajude a esclarecer esssa tmb
http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&p=123505#123505

um jeito simples de imprimir a fila seria implementar um metodo q retorne se ainda ha elementos na fila, um hasNext()

algo do tipo!

public boolean hasNext(){
     if (this.posicao > -1)
           return true;
     else
           return false;
}

e entao na hora da impressao

while(fila.hasNext(){
      //gambiarra, ifs, etc
}

:joia:

E

“Fierodd”:
ola
eu respondi a duvida da pilha … talvez ajude a esclarecer esssa tmb
http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&p=123505#123505

um jeito simples de imprimir a fila seria implementar um metodo q retorne se ainda ha elementos na fila, um hasNext()

algo do tipo!

public boolean hasNext(){
     if (this.posicao > -1)
           return true;
     else
           return false;
}

e entao na hora da impressao

while(fila.hasNext(){
      //gambiarra, ifs, etc
}

:joia:

mas dai ja tem dois metodos um estacheia ou estavazia para verificar, ainda nao entendi direito esse metodo hasnext
segue o codigo pq eu nao estou conseguindo converter para int:

/<em>2- Implemente a Classe Fila com os seguintes Métodos

Enfileirar(int v)

Desenfileirar()

Primeiro_Elemento()

Mostra_Fila()

Limpa_Fila()</em>/

// importa a JOptionPane para solicitar ao usuario o elemento

import javax.swing.JOptionPane;

//inicio da classe Fila implementada em Java
public class Fila{

//todos os atributos serao private
private int prim;
private int ultim;
private int tam;
private int numElementos;
private String conteudo[]=String.valueOf(conteudo);//converte aqui???mas da erro? (mesma duvida da pilha)

//construtor Fila passando inteiro
public Fila(int t) {
	this.tam = t;
	this.prim = -1;
	this.ultim = -1;
	this.numElementos = 0;
	this.conteudo=new int[t];//aqui da erro de incompatibilidade

}//fim do construtor

//metodos gerais
          //esse hasnext seria um metodo geral?

//metodo inserir
public void Inserir(String i) {
	
	if (estaCheia())
		return;
	
	this.ultim++;
	this.numElementos++;
	
	if (this.ultim &gt; this.tam-1)
		this.ultim = 0;
		
	if (this.prim == -1)
		this.prim = 0;
		
	this.conteudo[this.ultim]=i;

}//fim do metodo inserir

//metodo remover
public String Remover() {

	if (estaVazia())
		return "";

	String aux = this.conteudo[this.prim];
	
	this.prim ++;
	this.numElementos--;
			
	if (this.prim &gt; this.tam-1)
		this.prim = 0;
		
	return aux;
}//fim do metodo remover

//metodo Esvazia
public void Limpa_Fila() {
	
	this.prim = -1;
	this.ultim = -1;
	this.numElementos = 0;
}//fim do metodo esvazia

//metodo primeiro da fila
public String Primeiro_Elemento() {
	
	return this.conteudo[this.prim];
}//fim do metodo primeiro

//metodo ultimo da fila
public String Ultim() {
	
	return this.conteudo[this.ultim];
}//fim do metodo ultimo da fila

//metodo get primeiro
public int GetPrimeiro_Elemento() {
	
	return this.prim;
}//fim do metodo get primeiro

public int GetUltim() {
	
	return this.ultim;
}

//metodo estaVazia
public boolean estaVazia() {
	
	//inicio do if
	if (this.numElementos == 0) {
		JOptionPane.showMessageDialog(null,"A fila esta vazia!!!","Fila",JOptionPane.WARNING_MESSAGE);
		return true;
		}//fim do if
	else
		return false;	
	
}//fim do metodo esta vazia

//metodo numero de elementos	
public int numElementos() {
	
	return this.numElementos;
	
}//fim do metodo numero de elementos

//metodo esta cheia
public boolean estaCheia() {
	
	//inicio do if
	if (this.numElementos == this.tam) {
		JOptionPane.showMessageDialog(null,"A fila esta cheia!","Fila",JOptionPane.WARNING_MESSAGE);
		return true;
		}//fim do if
	else
		return false;	
	
}//fim do metodo esta cheia

public void Mostra_Fila(){
	
	System.out.println(this.numElementos);
}

}//fim da classe fila

FieroddPJ

o metodo hasNext seria um metodo geral sim, mas agora me dei conta … nao me lembro se uma fila pode ser percorrida sem q os elementos sejam retirados, senão eu poderia tirar oq quiser sem me preocupar com o (last in last out)
nesse caso vc so precisa percorre-la e ir retirando os elementos

while(!estaVazia()){
   //codigo
}
Criado 25 de agosto de 2006
Ultima resposta 27 de ago. de 2006
Respostas 3
Participantes 2