Java - problema ¡¡ARBOL BINARIO!!

 
Vista:

problema ¡¡ARBOL BINARIO!!

Publicado por zass (1 intervención) el 24/03/2007 00:16:36
Hola a todos,
estoy haciendo una practica sobre arboles binarios en java, partiendo de la base de:

public class MyTree {
private class BinNode{
public BinNode left;
public BinNode right;
public int label;

public BinNode(BinNode sx, BinNode dx, int dt){
left=sx;
right=dx;
label=dt;
}

}

private BinNode root;

//.................................metodos de la clase

}

TENGO QUE HACER UNA FUNCION "public java.lang.String replaceInOrder(int goal, int val)", LA CUAL MEDIANTE UN RECORRIDO IN ORDER REEMPLACE EL PRIMER VALOR "GOAL" ENCONTRADO POR "VAL". Y QUE A SU VEZ DEVUELVA UNA STRING CON EL PATH QUE SE TIENE QUE RECORRER DESDE LA RAIZ PARA HAYAR EL NODO(MEDIANTE LETRAS "l" para left, "r" para right) BIEN, TENGO ESTO... Y ME SALE unreachable statement Y missing return statement: TENGO UNA FUNCION CASI IDENTICA QUE FUNCIONA BIEN, SI ALGUIEN ME AYUDA LO AGRADECERIA!!

public java.lang.String replaceInOrder(int goal, int val) {
return inorder(root, goal, val);
}

private java.lang.String inorder(BinNode a, int goal, int val) {
java.lang.String tempL="";
java.lang.String tempR="";

if(a==null) return null;

//visita IZQUIERDA
tempL = inorder(a.left, goal, val);
if(tempL!=null) return ("l"+tempL);

//NODO
if(a.label==goal){
a.label=val;
return "";
}else{
return null;
}

//visita DERECHA
tempR = inorder(a.right, goal, val);
if(tempR!=null) return ("r"+tempR);
}

GRACIAS!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema ¡¡ARBOL BINARIO!!

Publicado por Gonzalo (180 intervenciones) el 24/03/2007 08:18:34
El problema es que si pones algo como:

if ( ... ) {
return "";
} else {
return null;
}

Después ya no puedes poner nada más. ¿Por qué? Porque ahí ya estás considerando todos los casos posibles. Estás diciendo "si a.label == goal, devuelvo "" y si no, devuelvo null y luego..." Pero no hay ningún luego, la parte de Visita Derecha nunca puede llegar a ejecutarse y por eso dice "Unreachable statement" (código inalcanzable, nunca se llega a ejecutar)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar