Olá, pessoal.
Estou tendo que aprender estrutura de dados em Java. Resolvi estudar pela apostila CS14 da Caelum, pois nos livros estavam complicando muito esse assunto.
Comecei com listas encadeadas, pois usar vetores é trivial, pelo menos no que entendo.
Bem, escrevi as primeiras classes, mas na hora de testar a saída não é a que está na página 45 da apostila, mas sim o comando System.out.println retorna um endereço, parece.
Vejam os códigos:
package listaSimplesmenteLigada;
public class AlunoLista
{
private String nome;
private int idade;
private AlunoLista proximo;
}
package listaSimplesmenteLigada;
public class Celula
{
private Celula proxima;
private Object elemento;
public Celula(Celula proxima, Object elemento)
{
this.proxima = proxima;
this.elemento = elemento;
}
public Celula(Object elemento)
{
this.elemento = elemento;
}
public void setProxima(Celula proxima)
{
this.proxima = proxima;
}
public Celula getProxima() {
return proxima;
}
public Object getElemento() {
return elemento;
}
}
package listaSimplesmenteLigada;
public class ListaLigada
{
private Celula primeira;
private Celula ultima;
public void adiciona(Object elemento) {}
public void adiciona(int posicao, Object elemento) {}
public Object pega(int posicao) {return null;}
public void remove(int posicao){}
public int tamanho() {return 0;}
public boolean contem(Object o) {return false;}
public void adicionaNoComeco(Object elemento) {}
public void removeDoComeco() {}
public void removeDoFim() {}
}
package listaSimplesmenteLigada;
public class TesteAdicionaNoFim
{
public static void main(String[] args)
{
ListaLigada lista = new ListaLigada();
lista.adiciona("Rafael");
lista.adiciona("Paulo");
System.out.println(lista);
}
}
Acho que reproduzi o código igualzinho qo que está na apostila, pois o Eclipse não apontou nenhum erro, somente diz que certos atributos nunca são utilizados.
Para falar a verdade, não entendi direito, não há códigos nos métodos adiciona, pega, remove, etc. da classe ListaLigada.
parece que esses métodos são implementados na classe Celula, mas o objeto criado na classe TesteAdicionaNoFim é do tipo ListaLigada.
E também não entendi para que serve a classe AlunoLista, pois a mesma não é chamada nunca.
Nossa, estou boiando nessa apostila !
Alguém pode dar uma luz aí, por favor ?
Obrigado !