Arbol en Java
Publicado por Miguel (1 intervención) el 13/09/2007 23:20:10
Buenas...y muchas gracias por anticipado
Necesito implementar una busqueda en un arbol tal que me diga si se llega por algun camino al nodo 7.
Tengo este codigo...casi lo tengo, si me entra por el nodo 6 funciona perfectamente, pero si entra por el nodo 2 luego me sube por el 4 y al llegar al 6 me saca del metodo...y tendria que seguir por el 6
El metodo damePadresDeInstancia(String codigoHijo) me devuelve los nodos que estan por encima...
¿me podeis echar un cable? Es importante y os estaria muy agradecido!!!!
7 5
| |
| 4
6 |
| 2 3
| | |
1
public boolean compruebaCaminosIndirectos(String codigoHijo, String codigoFinal, ArrayList todasRelaciones){
ArrayList codigosPadres = (ArrayList) damePadresDeInstancia(codigoHijo);
Iterator itCodigosPadres = codigosPadres.iterator();
while(itCodigosPadres.hasNext()){
String codigoPadre = (String)itCodigosPadres.next();
System.out.println(codigoPadre);
if (codigoFinal.equals(codigoPadre)) {
return true;
} else{
return compruebaCaminosIndirectos(codigoPadre, codigoFinal, todasRelaciones) ;
}
}
return false;
}
Necesito implementar una busqueda en un arbol tal que me diga si se llega por algun camino al nodo 7.
Tengo este codigo...casi lo tengo, si me entra por el nodo 6 funciona perfectamente, pero si entra por el nodo 2 luego me sube por el 4 y al llegar al 6 me saca del metodo...y tendria que seguir por el 6
El metodo damePadresDeInstancia(String codigoHijo) me devuelve los nodos que estan por encima...
¿me podeis echar un cable? Es importante y os estaria muy agradecido!!!!
7 5
| |
| 4
6 |
| 2 3
| | |
1
public boolean compruebaCaminosIndirectos(String codigoHijo, String codigoFinal, ArrayList todasRelaciones){
ArrayList codigosPadres = (ArrayList) damePadresDeInstancia(codigoHijo);
Iterator itCodigosPadres = codigosPadres.iterator();
while(itCodigosPadres.hasNext()){
String codigoPadre = (String)itCodigosPadres.next();
System.out.println(codigoPadre);
if (codigoFinal.equals(codigoPadre)) {
return true;
} else{
return compruebaCaminosIndirectos(codigoPadre, codigoFinal, todasRelaciones) ;
}
}
return false;
}
Valora esta pregunta


0