Ola pessoal…
Eu gostaria de uma ajuda no metodo de impressão que criei para uma lista duplamente encadeada. Segue o código do método que esta na classe ListaLigada:
public String imprimeLista()
{
String print = "Lista Ligada\n\n";
No i = primeiro;
while(i != ultimo);
{
print +=""+ i.getValor() + "\n";
if (i.getProximo() != null)
{
i = i.getProximo();
}
}
return print;
}
Não esta funcionando!
Ja testei todos os métodos get’s e set’s dentro deste método. :shock:
Segue a minhas classes.
public class No
{
private int valor;
private No anterior, proximo;
public No(int vlr, No ant, No prox)
{
setValor(vlr);
setAnterior(ant);
setProximo(prox);
}
public No(int vlr)
{
valor = vlr;
}
/* METODOS DE ACESSO AOS ATRIBUTOS */
/* METODOS MODIFICADORES */
public void setValor(int vlr)
{
valor = vlr;
}
public void setAnterior(No ant)
{
anterior = ant;
}
public void setAnteriorNull()
{
anterior = null;
}
public void setProximoNull()
{
proximo = null;
}
public void setProximo(No prox)
{
proximo = prox;
}
/* METODOS DE RETORNO */
public int getValor()
{
return valor;
}
public No getAnterior()
{
return anterior;
}
public No getProximo()
{
return proximo;
}
}
Lista Ligada
public class ListaLigada
{
private No primeiro;
private No ultimo;
public ListaLigada(int p, int u)
{
primeiro = new No( p );
primeiro.setProximo( ultimo );
ultimo = new No( u );
ultimo.setAnterior( primeiro );
}
/* METODOS DE INSERÇÃO */
public void inserirApos(No anterior, No novo)
{
if (anterior == ultimo)
{
novo.setAnterior( anterior );
anterior.setProximo( novo );
setUltimo( novo );
}
else
{
novo.setAnterior( anterior );
novo.setProximo( anterior.getProximo() );
( anterior.getProximo() ).setAnterior( novo );
anterior.setProximo( novo );
}
}
public void inserirAntes(No proximo, No novo)
{
if(proximo == primeiro)
{
novo.setProximo( proximo );
proximo.setAnterior( novo );
setPrimeiro( novo );
}
else
{
novo.setProximo( proximo );
novo.setAnterior( proximo.getAnterior() );
( proximo.getAnterior() ).setProximo( novo );
proximo.setAnterior( novo );
}
}
/* METODO DE REMOÇÃO*/
public void removerNo(No removido)
{
if( removido == primeiro )
{
setPrimeiro( removido.getProximo() );
removido.setProximoNull();
}
if( removido == ultimo )
{
setUltimo( removido.getAnterior() );
removido.setAnteriorNull();
}
else
{
( removido.getProximo() ).setAnterior( removido.getAnterior() );
( removido.getAnterior() ).setProximo( removido.getProximo() );
removido.setAnteriorNull();
removido.setProximoNull();
}
}
/* METODOS MODIFICADORES DOS ATRIBUTOS */
public void setPrimeiro(No p)
{
p.setAnteriorNull();
primeiro = p;
}
public void setUltimo(No u)
{
u.setProximoNull();
ultimo = u;
}
/* METODOS DE RETORNO DOS ATRIBUTOS */
public No getPrimeiro()
{
return primeiro;
}
public No getUltimo()
{
return ultimo;
}
/* OUTROS METODOS */
public String imprimeLista()
{
String print = "Lista Ligada\n\n";
No i = primeiro;
while(i != ultimo);
{
print +=""+ i.getValor() + "\n";
if (i.getProximo() != null)
{
i = i.getProximo();
}
}
return print;
}
}