Subprogramas:Recursividad


Como ya sabemos, un programa puede llamar a cualquier otro subprograma y este a otro y así sucesivamente. Entonces podemos tener algo como

A llamar_a B, B llamar_a C, C llamar_a D

Pero también podríamos hacer algo como
caso 1
B llamar_a B

o bien

caso 2
A llamar_a B, B llamar_a A


A esto se le llama recursividad, a las funciones que se llaman a ellas mismas ya sea directa o indirectamente.
Por ahora solo veremos esta parte de forma muy general y mas adelante se va a profundizar este tema. La recursividad se puede usar como alternativa a la iteración.
A la recursividad la podemos definir de dos maneras, directa o indirecta.
   Directa: por ejemplo en el caso 1, la función se llama a si misma explícitamente
   Indirecta: por ejemplo en el caso 2, la función no se llama así misma explícitamente  sino que primero pasa por otra función antes de efectuar la recursividad.