Está en la página 1de 16

ESTRUCTURA DE

DATOS ORIENTADO
A OBJETOS
INGENIERÍA DE SISTEMAS

OPERACIONES RECURSIVAS

DR. LUIS BOY CHAVIL


Recursividad
• Concepto
• Un proceso es Recursivo cuando forma parte de sí mismo
• Condiciones básicas de Recursividad
• El proceso es finito
• El proceso es repetitivo con llamadas a sí mismo
• El proceso se inicializa en cada llamada.
Tipos de Recursividad
• Según el sub programa al que se hace la llamada
• Recursividad Simple o Directa
• La función incluye una referencia explícita a sí misma
• Ejemplo: Función recursiva para calcular el Factorial de un número
Tipos de Recursividad
• Según el sub programa al que se hace la llamada
• Recursividad Mutua o indirecta
• La función u operación llama a otras funciones de forma anidada y en la última llamada
se llama al primero.
• Ejemplo: Función recursiva de Ackermann
Tipos de Recursividad
• Según el modo en que se hace la llamada
• Recursividad de Cabeza
• La llamada se hace al principio del sub programa, de forma que el resto de instrucciones
se realizan después de todas las llamadas recursivas.
• Sintaxis:
Recursividad de cabeza
• Ejemplo en C++

• Ejecución del programa


Tipos de Recursividad
• Según el modo en que se hace la llamada
• Recursividad de Cola
• La llamada se hace al final del sub programa, de forma que el resto de instrucciones se
realizan antes de hacer la llamada recursiva.
• Sintaxis:
Recursividad de cola
• Ejemplo en C++

• Ejecución del programa


Tipos de Recursividad
• Según el modo en que se hace la llamada
• Recursividad Intermedia
• Las instrucciones aparecen tanto antes como después del sub programa.
• Sintaxis:
Recursividad intermedia
• Ejemplo en C++

• Ejecución del programa


Tipos de Recursividad
• Según el modo en que se hace la llamada
• Recursividad Múltiple
• Se producen varias llamadas en distintos puntos del sub programa.
• Sintaxis:
Recursividad múltiple
• Ejemplo en C++

• Ejecución del programa


Tipos de Recursividad
• Según el modo en que se hace la llamada
• Recursividad Anidada
• La llamada recursiva utiliza un parámetro que es resultado de una llamada recursiva.
• La recursión se produce en un parámetro de la propia llamada recursiva.
• Sintaxis:
Recursividad anidada (caso 1: Fibonacci)
• Ejemplo en C++

• Ejecución del programa


Recursividad anidada (caso 2: Función h)
• Ejemplo en C++

• Ejecución del programa


ESTRUCTURA DE
DATOS ORIENTADO
A OBJETOS
INGENIERÍA DE SISTEMAS

OPERACIONES RECURSIVAS

DR. LUIS BOY CHAVIL

También podría gustarte