como retornar um int no metodo enfileirar?
segue o codigo:
obs>se estiver postado na secao errada peco que o mova por favor
[code]/*- 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[/code]
[color=“red”]*Editado: use as tags BBCode em suas mensagens no forum. Jair Elton[/color]
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:[/quote]
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:
/2- 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[]=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 > 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 > 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);
}
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