Please enable JavaScript.
Coggle requires JavaScript to display documents.
6.8. RECURSIÓN (RECURSIVIDAD) - Coggle Diagram
6.8. RECURSIÓN (RECURSIVIDAD)
La escritura de un procedimiento o función recursiva es similar a sus homónimos no recursivos; sin embargo,
para evitar que la recursión continúe indefinidamente es preciso incluir una condición de terminación.
La razón de que existan lenguajes que admiten la recursividad se debe a la existencia de estructuras específicas
tipo pilas (stack, en inglés) para este tipo de procesos y memorias dinámicas. Las direcciones de retorno y el estado
de cada subprograma se guardan en estructuras tipo pilas (véase Capítulo 11). En el Capítulo 11 se profundizará en
el tema de las pilas; ahora nos centraremos sólo en el concepto de recursividad y en su comprensión con ejemplos
básicos.
Como ya se conoce, un subprograma puede llamar a cualquier otro subprograma y éste a otro, y así sucesivamente;
dicho de otro modo, los subprogramas se pueden anidar. Se puede tener
A llamar_a B, B llamar_a C, C llamar_a D
Cuando se produce el retorno de los subprogramas a la terminación de cada uno de ellos el proceso resultante será
D retornar_a C, C retornar_a B, B retornar_a A
¿Qué sucedería si dos subprogramas de una secuencia son los mismos?
A llamar_a A
En primera instancia, parece incorrecta. Sin embargo, existen lenguajes de programación —Pascal, C, entre
otros— en que un subprograma puede llamarse a sí mismo.
Una función o procedimiento que se puede llamar a sí mismo se llama recursivo. La recursión (recursividad) es
una herramienta muy potente en algunas aplicaciones, sobre todo de cálculo. La recursión puede ser utilizada como
una alternativa a la repetición o estructura repetitiva. El uso de la recursión es particularmente idóneo para la solución
de aquellos problemas que pueden definirse de modo natural en términos recursivos.