¿Qué debo hacer para aprender bien la recursión en C?

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


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:

Mira este video te ayuda a aprender recursión en C