Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
La recursividad no es una estructura de datos, sino que es una tcnica que nos
permite que un bloque de instrucciones se ejecute n veces. Remplaza en
ocasiones a estructuras repetitivas.
En C# los mtodos pueden llamarse a s mismos. Si dentro de un mtodo
existe la llamada a s mismo decimos que el mtodo es recursivo.
Cuando un mtodo se llama a s mismo, se asigna espacio en la pila para las
nuevas variables locales y parmetros.
Al volver de una llamada recursiva, se recuperan de la pila las variables locales
y los parmetros antiguos y la ejecucin se reanuda en el punto de la llamada
al mtodo.
La clave est en que en cada llamada el problema se simplifica de tal modo
que llegar el momento en que no har falta llamar nuevamente al mtodo
recursivo. (Tomando por ejemplo algo realista como Una rama de un rbol a su vez
tiene ramas, que a su vez puede tener ramas y as sucesivamente, pero llega el momento
en que se llega a una rama que solo tiene hojas.)
Utilizar
"Si el nmero es menor que cero, se rechaza. Si no es un entero, se rechaza. Si el
nmero es cero, su factorial es uno. Si el nmero es mayor que cero, se multiplica por
el factorial del nmero menor inmediato".
Para calcular el factorial de cualquier nmero mayor que cero debe calcular como
mnimo el factorial de otro nmero. La funcin debe llamarse a s misma para el
siguiente nmero menor antes de que se pueda ejecutar en el nmero actual, lo cual
constituye un ejemplo de recursividad.
Cada vez que una funcin recursiva se llama a s misma (o llama a otra funcin que
llama a la funcin original), utiliza algunos recursos. Estos recursos se liberan cuando la
funcin recursiva termina, pero una funcin que tenga demasiados niveles de
recursividad podra utilizar todos los recursos disponibles. Cuando esto sucede, se
produce una excepcin.
Para no presentar problemas Hay que disear la funcin de forma que cuente el
nmero de veces que se llama a s misma y establezca un lmite en el nmero de
llamadas. Si la funcin se llama a s misma ms veces que el umbral definido, puede
hacer que la funcin termine automticamente. El nmero mximo ptimo de
iteraciones depende de la funcin recursiva.
http://www.csharpya.com.ar/detalleconcepto.php?codigo=175&inicio=40
http://jcastrom.jimdo.com/inform%C3%A1tica/recursividad-en-c/