Seguinte, eu tenho que fazer um Deque Encadeado pra uma apresentação na facul, e ele já tá pronto, mas na hora de mostrar o deque em si, ele está mostrando um item “null” e eu não consegui retirar…
Alguém poderia me dar uma força ?
O método pra mostrar o deque está em vermelho.
EDIT[Thingol] - É o método “mostraDeque”, o tag “code” não permite cores
Agradeço desde já toda e qq ajuda…
=)
Naty Oliveira
O código vai em baixo e o as classes em anexo:
O NODO DUPLO
class Nodo_duplo
{
private Object elemento;
private Nodo_duplo proximo, anterior;
Nodo_duplo()
{
this(null, null, null);
}
Nodo_duplo(Object e, Nodo_duplo a, Nodo_duplo p)
{
elemento = e;
proximo = p;
anterior = a;
}
void setElemento (Object novoElemento)
{
elemento = novoElemento;
}
void setProximo (Nodo_duplo novoProximo)
{
proximo = novoProximo;
}
void setAnterior (Nodo_duplo novoAnterior)
{
anterior = novoAnterior;
}
Object getElemento()
{
return elemento;
}
Nodo_duplo getProximo()
{
return proximo;
}
Nodo_duplo getAnterior()
{
return anterior;
}
}
O DEQUE EM LISTA
import javax.swing.*;
public class DequeemLista implements Deque
{
private Nodo_duplo cabecalho, reboque;
private int tamanho;
private Object resposta;
public DequeemLista()
{
cabecalho = new Nodo_duplo();
reboque = new Nodo_duplo();
cabecalho.setProximo(reboque);
reboque.setAnterior(cabecalho);
tamanho = 0;
}
public int tamanho()
{
return tamanho;
}
public boolean estaVazio()
{
if( cabecalho.getProximo() == reboque && reboque.getAnterior() == cabecalho)
return true;
return false;
}
public void insereDequePrimeiro(Object obj)
{
Nodo_duplo segundo = cabecalho.getProximo();
Nodo_duplo v = new Nodo_duplo(obj, cabecalho, segundo);
segundo.setAnterior(v);
cabecalho.setProximo(v);
tamanho++;
}
public void insereDequeUltimo(Object obj)
{
Nodo_duplo penultimo = reboque.getAnterior();
Nodo_duplo v = new Nodo_duplo(obj, penultimo, reboque);
penultimo.setProximo(v);
reboque.setAnterior(v);
tamanho++;
}
public Object primeiro() throws ExcecaoDequeVazio
{
if(estaVazio())
throw new ExcecaoDequeVazio("O Deque está vazio!");
return cabecalho.getProximo().getElemento();
}
public Object ultimo() throws ExcecaoDequeVazio
{
if(estaVazio())
throw new ExcecaoDequeVazio("O Deque está vazio!");
return reboque.getAnterior().getElemento();
}
public Object retiraDequePrimeiro() throws ExcecaoDequeVazio
{
if(estaVazio())
throw new ExcecaoDequeVazio("O Deque está vazio !");
Nodo_duplo primeiro = cabecalho.getProximo();
Object temp = primeiro.getElemento();
Nodo_duplo segundo = primeiro.getProximo();
cabecalho.setProximo(segundo);
segundo.setAnterior(cabecalho);
tamanho--;
return temp;
}
public Object retiraDequeUltimo() throws ExcecaoDequeVazio
{
if(estaVazio())
throw new ExcecaoDequeVazio("O Deque está vazio !");
Nodo_duplo ultimo = reboque.getAnterior();
Object temp = ultimo.getElemento();
Nodo_duplo penultimo = ultimo.getAnterior();
reboque.setAnterior(penultimo);
penultimo.setProximo(reboque);
tamanho--;
return temp;
}
public void mostraDeque() throws ExcecaoDequeVazio
{
if(estaVazio())
throw new ExcecaoDequeVazio("O Deque está vazio !");
Nodo_duplo nodoMostra = cabecalho.getProximo();
while (nodoMostra != null)
{
if (resposta == null)
resposta = nodoMostra.getElemento();
else if (resposta != null)
resposta = resposta + " " + nodoMostra.getElemento();
nodoMostra = nodoMostra.getProximo();
}
JOptionPane.showMessageDialog(null,"Deque Encadeado: " + resposta);
resposta = null;
}
}