Solucionar para meu miniaplicativo

2 respostas
G

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 ("??");

// }

}

}

2 Respostas

S

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

BrunoBastosPJ

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

Criado 4 de janeiro de 2008
Ultima resposta 4 de jan. de 2008
Respostas 2
Participantes 3