Estructura de dato unidad 2
Transcript of Estructura de dato unidad 2
![Page 1: Estructura de dato unidad 2](https://reader035.fdocuments.ec/reader035/viewer/2022071822/55b9bdaebb61ebf8558b45b1/html5/thumbnails/1.jpg)
ING. SISTEMAS COMPUTACIONALES
Docente: Niels Henryk Aranda Cuevas
Alumna: Marleni Tuyub Che
Instituto Tecnológico Superior de Felipe Carrillo Puerto
Estructura de Datos
![Page 2: Estructura de dato unidad 2](https://reader035.fdocuments.ec/reader035/viewer/2022071822/55b9bdaebb61ebf8558b45b1/html5/thumbnails/2.jpg)
Unidad 2recursividad
![Page 3: Estructura de dato unidad 2](https://reader035.fdocuments.ec/reader035/viewer/2022071822/55b9bdaebb61ebf8558b45b1/html5/thumbnails/3.jpg)
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.
![Page 4: Estructura de dato unidad 2](https://reader035.fdocuments.ec/reader035/viewer/2022071822/55b9bdaebb61ebf8558b45b1/html5/thumbnails/4.jpg)
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
![Page 5: Estructura de dato unidad 2](https://reader035.fdocuments.ec/reader035/viewer/2022071822/55b9bdaebb61ebf8558b45b1/html5/thumbnails/5.jpg)
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
![Page 6: Estructura de dato unidad 2](https://reader035.fdocuments.ec/reader035/viewer/2022071822/55b9bdaebb61ebf8558b45b1/html5/thumbnails/6.jpg)
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.