Estructura de dato unidad 2

Post on 30-Jul-2015

17 views 2 download

Transcript of Estructura de dato unidad 2

ING. SISTEMAS COMPUTACIONALES

Docente: Niels Henryk Aranda Cuevas

Alumna: Marleni Tuyub Che

Instituto Tecnológico Superior de Felipe Carrillo Puerto

Estructura de Datos

Unidad 2recursividad

2.1 Definición

La recursividad es una técnica de programación importante, se utiliza para realizar una llamada a una función desde la misma función

2.2 procedimiento recursivosLos procedimientos recursivos o recurrentes se pueden clasificar en dos formas distintas:-       Recursividad directa o-       Recursividad indirecta La recursividad directa se presenta cuando el método se manda llamar a sí mismo dentro de su propio cuerpo de instrucciones.            public int Metodo(int n)            {                        :                        n = Metodo(n-1);}La recursividad indirecta se manifiesta cundo un método llama a otro y dentro del segundo se manda llamar al primero. O cuando existe la llamada a métodos de forma encadenada y al terminar el último método llamado, transfiere el control al anterior, hasta llegar al método que inicio la serie de llamadas.

public int Metodo1(int n)            {                        :                        n = Metodo2(n-1);            }public int Metodo2(int n)            {                        :                        n = Metodo1(n-1);            }Analizando el concepto de recursividad y su clasificación,  puede indicar que es un procedimiento infinito, que solo se detendrá en el momento que se agote la memoria, generando un error de programación y la interrupción del mismo.Pero esto no es así, ya que debe existir un elemento que indica el retorno de un resultado concreto y no el retorno de la llamada al método recursivo o recurrente.

Funcionamiento del proceso

n Llamado a factorial

4 4*factorial(3)

    3  3*factorial(2)

    2  2*factorial(1)    

     1    1*factorial(0) 0 1                   

Imprimir de manera recursiva la serie de fibonnaci

Fibonnacci de manera recursiva

 Fibonacci(0,1,21)=1Fibonacci(1,1,21)=2Fibonacci(1,2,21)=3Fibonacci(2,3,21)=5Fibonacci(3,5,21)=8Fibonacci(5,8,21)=13Fibonacci(8,13,21)=21

Realizar de manera recursiva la potencia de un número para n.

24   2*potencia(2*potencia(2*potencia(2*potencia(2,0))Potencia(2,4)=2*potencia(2,3)=16Potencia(2,3)=2*potencia(2,2)=8Potencia(2,2)=2*potencia(2,1)=4Potencia(2,1)=2*potencia(2,0)=2Potencia(2,0)=1

conclusión

se llama a una función recursiva es llamar una función en si misma para resolver un problema. En realidad la función sólo sabe cómo resolver el(los) caso(s) más sencillo(s), o lo que se conoce como base(s).Si a la función se le llama con el caso base, la función sencillamente devuelve el resultado. Si a la función se le llama con un problema más complicado, la función divide el problema en  partes conceptuales, la parte que la función sabe cómo resolver y la parte que la función o resolver.