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!!
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


0