Solucionar para meu miniaplicativo

Meu S. O. é Win98, minha versão é antiga do JDK 1.1.07, JRE, JCREATOR 2.5

e gostaria da ajuda de quem puder.
Estou testando o cód. passado pelo professor… do semestre que findou.

Erros da classe ‘No’:

C:\JCreator LE\bin\MyProjects\Comjre\No.java:34:
Incompatible type for return. Can’t convert No to int.
return this.esq;

C:\JCreator LE\bin\MyProjects\Comjre\No.java:37:
Incompatible type for return. Can’t convert No to int.
return this.dir;

Problema de auto-referència? JCreator 2.5
/**

  • @(#)No.java
  • @author
  • @version 1.00 2007/10/17
    /
    import java.io.
    ;
    public class No {
    public int elem;
    // auto-referências ´os nós da esq e dir. da árvore
    public No esq, dir;
    // Construtor da classe - inicializa o nó
    public No (int e) {

setElem(e);

this.esq = null;
this.dir = null;
}
public void setElem(int e){
elem = e;
}
public void setEsq (No e){
this.esq = e;
}
public void setDir (No e){
this.dir = e;
}
public int getElem(int elem){
return this.elem;
}
public int getEsq(){
return this.esq;
}
public int getDir(){
return this.dir;
}
}

//Classe TArvoreBin: Creio que seus erros sáo decorrentes do probl. Class ‘No’.

class TArvoreBin {
//Raiz
private No Raiz;

public TArvoreBin(){
Raiz = null;
}
public boolean arvoreVazia(){
return(Raiz == null);
}
public No getRaiz(){
return Raiz;
}
No criaRaiz(int valor){
No novoNo = new No(valor){
raiz = novoNo;
return novoNo;
}
public No insereDir(No pai, int valor){
if(!arvoreVazia()){
if (pai.getDir() !=null){
System.out.println("\n Nó direito já ocupado!!!\n");
return null;
}
else{
No novoNo = new No(valor);
pai.setDir(novoNo);
return(novoNo);
}
}
return null;
}
No insereEsq(No pai, int valor){
if (!arvoreVazia()){
if (pai.getEsq()!= (null)){
System.out.println("\n N[ó esquerdo já ocupado!!! \n");
return null;
}
else{
No novoNo = new No(valor);
pai.setEsq(novoNo);
return(novoNo);
}
return null;
}
}
}

//Classe para execução

/**

  • @(#)teste.java
  • @author
  • @version 1.00 2007/10/17
    */

public class teste {
public static void main(String[] args) {

// try {
No novoNo = new No(34);

System.out.println(“Elemento=”+novoNo.getElem());
//////// } catch (java.lang.String e) {
System.out.println ("??");
// }
}
}

Golden o problema é o seguinte cara, você definiu que:

public No esq, dir; ou seja são do tipo No e no método get você diz o sequinte

public int getEsq() { return this.esq; }
tá errado.

tem que ser

public No getEsc(){ return this.esq; } o mesmo pro getDir

Mude:

public int getEsq(){
return this.esq;
}
public int getDir(){
return this.dir;
} 

Para:

public No getEsq(){
return this.esq;
}
public No getDir(){
return this.dir;
} 

Na classe No