La palabra ‘recursión’ se deriva de la palabra ‘recur’, es decir, volver a ocurrir que es ‘volver a ocurrir’. Entonces, cuando una función se llama a sí misma, es una función recursiva llamada.
Un ejemplo intuitivo de recursión es la muñeca rusa matryushka:
http://vaidehijoshi.github.io/bl…
muñeca matrioska
- Cómo aprender el arte de escribir ingeniosos de una sola línea.
- ¿Por qué se sigue el aprendizaje de memoria para aprender tamil en las escuelas?
- ¿En qué momento deben los estudiantes dejar de aprender ciertas materias, especialmente el inglés y la historia, que no son relevantes para sus futuras carreras?
- Cómo evitar que la escuela obstruya mi proceso de aprendizaje / velocidad
- ¿Por qué nuestro sistema educativo es tan poco práctico? ¿Por qué no podemos aprender algo más práctico en nuestro programa de estudios que nos ayude más adelante en la vida?
Entre llamadas de función:
La función es una sola pieza de código que se llama con diferentes datos de entrada. Normalmente, la mayoría de los programas almacenan estos datos de entrada en una pila. Podrían llamar a otras funciones (o ellos mismos) con algunos datos. Estos datos se apilan primero y el control se transfiere a la función llamada. Realiza el procesamiento que debe hacer y devuelve el resultado a la función de llamada. La función llamada también limpia sus variables de pila automática antes de salir, de modo que la función de llamada “ve” una pila con solo sus propios datos en la parte superior.
Los datos de entrada cambian con cada llamada de función (recursiva o normal). Los datos se pueden visualizar como pedazos de papel que se apilan uno encima del otro.
El procesamiento real de los datos apilados sucedería en orden inverso, es decir, una función ve los datos en la parte superior de la pila.
el papel más alto se evalúa primero => resultados calculados y devueltos => papel desechado.
Este proceso se repite hasta que la pila está vacía.
Vea a continuación una animación de cómo la pila crece con llamadas de función anidadas y se reduce con el retorno de la llamada de función.
Nota: Esto es opuesto a las “colas” con las que tratamos en nuestra vida diaria en el banco y en el supermercado. Cuando el número de elementos a procesar es más de lo que se puede hacer a la vez, simplemente ponemos las cosas en una cola.
============
Programas simples de C y explicación de la recursión: http://www.cprogramming.com/tuto…
Animación de video simple de la función recursiva llamada desde main () en C ++:
Función de animación de la pila de llamadas con más detalle:
Las partes internas de la función-pila de llamadas C parecen después de que el código C se convierte al lenguaje ensamblador de su procesador específico: