ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Estructuras de Datos en Java


Enviado por   •  20 de Diciembre de 2021  •  Apuntes  •  990 Palabras (4 Páginas)  •  105 Visitas

Página 1 de 4

[pic 1]

En el momento en que se llama a la función por primera vez y esta se ejecuta enviándole un 8 como parámetro, se evalúa el número 8 y se entra en el bloque de la condición que coincida, en este caso lo que se ejecuta es lo siguiente:[pic 2][pic 3]

2 + f(n - 1) [pic 4]

En el instante en el que se llama de manera recursiva esta función a sí misma, pero a la nueva instancia de sí misma, por ende no exactamente la misma, sino una copia de esta, se envía como parámetro ‘n – 1’, siendo n el 8 que se había recibido, entonces al efectuar esta resta, en realidad se envía como parámetro el 7 en esta nueva llamada a la función, cuando esto sucede el 2 se queda esperando a que esa nueva llamada a la función se resuelva, se llene lo que hay entre paréntesis con un resultado para poder sumarse con ello, es como si tuviéramos esto:

return 2 + < Esperando que retorne el resultado de f(n - 1) >

[pic 5]

Luego cuando el 7 entra en la nueva instancia de la función, sucede lo mismo, se evalúa el 7 dado que en esta nueva instancia el n es el 7 que se recibe, y se entra en el bloque correspondiente, y así sucesivamente hasta llegar a alcanzar la condición de salida, al final, tendríamos algo como esto:

return 2 + < Esperando que retorne el resultado de f(n - 1) >

[pic 6]

return 3 + < Esperando que retorne el resultado de f(n - 2) >

[pic 7]

return 3 + < Esperando que retorne el resultado de f(n - 2) >

[pic 8]

return 3 + < Esperando que retorne el resultado de f(n - 2) >.

[pic 9]

Todos estos “Esperando que retorne el resultado… ” están esperando uno por el otro, en otras palabras cada nivel esta esperando por un nivel inmediato más profundo que él, recordemos que cada vez que se llama a la función de manera recursiva, se llama en sí a una nueva instancia de la función, es decir, una copia de la función original que se carga en memoria, entonces cuando se llama a una nueva instancia de la función a la que se le pasa 1 como parámetro, es decir, cuando se llama a f(1), entonces al evaluar el 1, sucede que se produce la condición de salida de las llamadas recursivas.

[pic 10][pic 11]

[pic 12]

Y el resultado que se devuelve en este caso es simplemente 1, cuando esto sucede, entonces se producen en cascada, con un efecto dominó, todos los retornos por los que se estaba esperando anteriormente, resolviéndose así cada suma que se tenía prevista.

return 2 + < Esperando que retorne el resultado de f(n - 1) >

[pic 13]

return 3 + < Esperando que retorne el resultado de f(n - 2) >

[pic 14]

return 3 + < Esperando que retorne el resultado de f(n - 2) >

...

Descargar como (para miembros actualizados) txt (5 Kb) pdf (200 Kb) docx (157 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com