Foros del Web » Programación para mayores de 30 ;) » Java »

Duda recursividad en Java

Estas en el tema de Duda recursividad en Java en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/01/2012, 07:11
 
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.
  #2 (permalink)  
Antiguo 13/01/2012, 07:20
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Duda recursividad en Java

Cita:
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??
Si, si lo hace. Es el punto de la recursividad. Independientemente del lenguaje, la recursividad funciona de la misma manera en todos los lenguajes.
El caso trivial es solo lo que permite que no se vuelva infinito el algoritmo, pero siempre que encuentre el caso trivial, el codigo que ejecuto la funcion (en este caso la misma funcion), seguira ejecutandose.
  #3 (permalink)  
Antiguo 16/01/2012, 10:40
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Duda recursividad en Java

Tenías razón. El problema venía de la definición del caso base.

No terminaba para todos los casos por lo que entraba en bucles infinitos.

Gracias por tomarte la molestia en responder...

Un saludo.

Etiquetas: recursividad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:06.