Está en la página 1de 3

Estructura de datos I

Recursividad

La recursividad en una función es básicamente cuando esta se llama así misma hasta cuando
ya no tenga que hacerlo.

Lo que hace una función recursiva se puede hacer mediante un loop, pero con el efoque
recursivo es más claro de leer y manipular el código.

Una función recursiva siempre tiene que decir cuando dejar de repetirse, siempre debe haber
dos partes en una función recursiva

1. El caso recursivo
2. Caso base

El caso recursivo es cuando la función se llama así misma y el caso base es cuando la función
deja de llamarse a sí misma, esto evita bucles infinitos.

Ejemplo de una función recursiva de cuenta regresiva con caso base.

Otro ejemplo de recursividad


Pila de llamadas

Las funciones recursivas usan algo llamado “Pila de llamadas”. Cuando un programa llama a
una función, esa función va a la parte superior de la pila de llamadas. Esto es similar a una pila
de libros, agregas las cosas de una en una, luego cuando esté listo para quitarse algo, siempre
se quitará el elemento superior.

Le mostraré la pila de llamadas en la función factorial . factorial(5)se escribe como 5! y se define
así: 5! = 5 * 4 * 3 * 2 * 1. Aquí hay una función recursiva para calcular el factorial de un número

Ejemplo.

Ahora veamos qué pasa si llamas. fact(3)La siguiente ilustración muestra cómo cambia la pila,
línea por línea. El cuadro superior de la pila le indica en qué llamada factse encuentra
actualmente.
Observe cómo cada llamada a facttiene su propia copia de x. Esto es muy importante para
hacer que la recursividad funcione. No puede acceder a la copia de una función diferente de x.

También podría gustarte