Sei sulla pagina 1di 7

INSTITUTO TECNOLÓGICO

SUPERIOR DE SAN ANDRÉS


TUXTLA

Ingeniería en Sistemas Computacionales

MTI Angelina Márquez Jiménez.

Reporte de Práctica No. 2

Presenta:
Lorenzo Antonio Sinta Minquiz
Israel Xolo Pucheta
Cristian David Cobaxin Seba

Grupo 304-B

San Andrés Tuxtla, Veracruz.


INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRÉS
TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

MANUAL DE PRÁCTICAS DE CÓDIGO: ARD-1026


LABORATORIO
ESTRUCTURA DE DATOS REVISIÓN: 1

ASIGNATURA: ESTRUCTURA DE DATOS

PRÁCTICA NO. 2

NOMBRE DE LA PRÁCTICA:
Análisis recursivo

OBJETIVO:
Analizar y comprender el funcionamiento de la recursividad de algoritmos

FUNDAMENTO TEÓRICO:

RECURSIVIDAD

La recursión o recursividad es una técnica de resolución de algunos problemas particulares.


Una función es recursiva cuando se define en función de sí misma, es decir, interviene en su
propia definición.
La recursividad es la propiedad mediante la cual un subprograma o rutina puede llamarse a sí
mismo.
Es una alternativa diferente para implementar estructuras de repetición (ciclos). Los módulos
se hacen llamadas recursivas.
Las funciones recursivas se componen de:

 Caso base: una solución simple para un caso particular (puede haber más de un caso
base).
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRÉS
TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

MANUAL DE PRÁCTICAS DE CÓDIGO: ARD-1026


LABORATORIO
ESTRUCTURA DE DATOS REVISIÓN: 1

COLA
En algunos algoritmos recursivos, se puede implementar un caso de recursividad especial
llamado Tail Recursión (recursividad por cola), la cual es una técnica para optimizar la
recursividad eliminando las constantes llamadas recursivas. Tail recursión es cuando la
llamada recursiva es la última instrucción de la función.
[2]L. J. Aguilar. Fundamentos de programación, estructura de datos y objetos. 4ta ed: Madrid:
McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U.,2008

DIRECTA
En recursión directa el código del subprograma recursivo F contiene una sentencia que invoca
a F, mientras que en recursión indirecta el subprograma F invoca al subprograma G que invoca
a su vez al subprograma P, y así sucesivamente hasta que se invoca de nuevo al subprograma
F.
[2]L. J. Aguilar. Fundamentos de programación, estructura de datos y objetos. 4ta ed: Madrid:
McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U.,2008

ANIDADA
En algunos de los argumentos de la llamada recursiva hay una nueva llamada a sí misma.
[2]L. J. Aguilar. Fundamentos de programación, estructura de datos y objetos. 4ta ed: Madrid:
McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U.,2008

INDIRECTA
La recursividad indirecta se produce cuando un subprograma llama a otro, que eventualmente
terminará llamando de nuevo al primero.
[2]L. J. Aguilar. Fundamentos de programación, estructura de datos y objetos. 4ta ed: Madrid:
McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U.,2008

INDIRECTA
El algoritmo recursivo llama a otro que provoca eventualmente una llamada al original.
EXCESIVA
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRÉS
TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

MANUAL DE PRÁCTICAS DE CÓDIGO: ARD-1026


LABORATORIO
ESTRUCTURA DE DATOS REVISIÓN: 1

MATERIAL Y EQUIPO EMPLEADO:


Laptop
JDK versión reciente
Notepad++

DESARROLLO

El alumno desarrollará un programa en el que creará un TDA estático con un arreglo que
almacene el nombre, carrera, edad, promedio de varios alumnos y permita realizar búsquedas
por nombre, edad, promedio y carrera. Además creará un TDA dinámico que almacene una
lista de nombres y permita imprimir toda la lista. Con esto deberá identificar las diferencias
entre ambos tipos de TDA y comprenderá cómo emplearlas.

CODIGO:

RESULTADOS:
static int factorial(int num){
if(num==0) factorial(5)=120
return 1; 5*4*3*2*1
else
return num*factorial(num-1); 20 60 120 120
}
Prueba de escritorio
num Condición Llamada recursiva Resultados
5 Si 5==0 x 5*factorial(4) 24 * 5 = 120
4 Si 4==0 x 4*factorial(3) 6 * 4 = 24
3 Si 3==0 x 3*factorial(2) 2*3=6
2 2==0 x 2*factorial(1) 1*2=2
1 Si 1==0 x 1*factorial(0) 1*1=1
0 Si 0==0 1 1
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRÉS
TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

MANUAL DE PRÁCTICAS DE CÓDIGO: ARD-1026


LABORATORIO
ESTRUCTURA DE DATOS REVISIÓN: 1

if(n<2)
return n;
else
return fibonacci(n-1)+fibonacci(n-2);
}

Fibo (5)

Fibo (4) Fibo (3)

Fibo (3) + Fibo (2) Fibo (1)

Fibo (2) + Fibo (1)

3+2=5
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRÉS
TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

MANUAL DE PRÁCTICAS DE CÓDIGO: ARD-1026


LABORATORIO
ESTRUCTURA DE DATOS REVISIÓN: 1

1.- Método Factorial


INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRÉS
TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

MANUAL DE PRÁCTICAS DE CÓDIGO: ARD-1026


LABORATORIO
ESTRUCTURA DE DATOS REVISIÓN: 1

CONCLUSIÓN:
La practica nos mostro que existen diferentes tipos de recursividad cada una de ellas tiene
sus ventajas en la programación

BIBLIOGRAFÍA:
Joyanes Aguilar, Luis (1996) Fundamentos de programación, Algoritmos y Estructura de datos. McGraw-Hill,
México.

[AHU88] A. Aho, J.E. Hopcroft, J. Ullman. Estructuras de datos y algoritmos. Addison-Wesley (1.988).

Potrebbero piacerti anche