Olá,
O problema na classe No é que você está tratando o dado (tipo Livro) como se fosse uma String, o que na verdade nao é. Você teria que fazer o seguinte (marcarei as alterações):
Código classe No
public class No implements Comparable
{
//Dados do nó
private Livro dado;
private No esq;
private No dir;
private No pai; // Nao conheco arvore ABB mas eu acho que todo no deve ter um apontador para o no pai
/*Construtor sem parâmetros
Nao seria necessario, pois todo Object tem um construtor sem parametros, onde todos os atributos sao Null
public No()
{
this(null,null,null);
} */
// Seria necessario apenas este:
public No(Livro _dado)
{
dado = _dado;
esq = null;
dir = null;
}
//Altera o dado do nó
public void setDado(Livro novo)
{
dado = novo;
}
//Retorna o dado do nó
public String getDado()
{
return dado;
}
//Altera o filho esquerdo
public void setEsq(No _esq)
{
this.esq = _esq;
}
//Altera o filho direito
public void setDir(No _dir)
{
this.dir = _dir;
}
//Retorna o nó esquerdo
public No getEsq()
{
return esq;
}
//Retorna o nó direito
public No getDir()
{
return dir;
}
[b]//Altera o Pai
public void setPai(No _pai)
{
pai = _pai;
}
//Retorna o nó esquerdo
public No getPai()
{
return pai;
}
public int compareTo(No outro) {
if(dado.compareTo(outro.getDado()) < 0) return -1;
if(dado.compareTo(outro.getDado()) > 0) return 1;
return 0;
}[/b]
}
classe livro com um contrutor
public class Livro implements Comparable
{
//dados do livro
private String cod,tit,aut,ano,tipo,veic,imag;
public void salvaLivro(String _cod,String _tit,String _aut,String _ano,String _tipo, String _veic,String _imag)
{
this.cod = _cod;
this.tit = _tit;
this.aut = _aut;
this.ano = _ano;
this.tipo = _tipo;
this.veic = _veic;
this.imag = _imag;
}
public int compareTo(Livro outro) {
if(tit.compareTo(outro.getTitulo()) < 0) return -1;
if(tit.compareTo(outro.getTitulo()) > 0) return 1;
return 0;
}
}
O No precisa ter apenas um construtor para gravar o dado nele, e todos os apontadores do No sao null, pois apenas na hora da inserção é que eles sao alterados, e nao durante a criacao. Para inserir utiliza-se o metodo compareTo de No, que pega o compareTo de livro.
esperoTerAjudado()