Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2012, 07:11
Kyokatallama
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Duda recursividad en Java

Buenas,

Yo sigo a lo mio y cada vez veo un problema nuevo... Os cuento:

Como se realiza la recursividad en java?

Me explico con un ejemplo general:

---------------------------------------
Fun ejemplo(a)

If (caso_base){
return trivial
}
else{
s1 = ejemplo(b);
s2 = ejemplo(c);
s = otra_funcion(s1,s2);
return s
}
----------------------------------------

Con esto, lo que sucede es:

1 - Llamada inicial a ejemplo(a) --> Entra en ejemplo(b).
2 - En ejemplo(b) --> entra en un ejemplo(d).
3 - En ejemplo(d) llega a caso base y devuelve trivial --> sale de ejemplo(d) y continua secuencialmente con ejemplo(c).

En este punto y al salir del ejemplo(d) debería volver a ejemplo(b) y una vez terminado en este, volver a ejemplo(a).
Una vez terminado todo esto, comenzaría con la siguiente rama de la recursión que sería similar...

En conclusión: Entiendo que al llegar al caso trivial de una rama recursiva, no hace la vuelta en la pila de llamadas...

Como puedo indicar a Java(Eclipse), que una vez llegado al caso base, este recorra la pilla de llamadas de la recursividad en sentido contrario hasta llegar a la llamada inicial??

Espero haberme explicado bien. Cualquier duda no dudéis en hacermela y, como siempre, perdonad las molestias...

Un saludo.