OBJETIVO GENERAL DEL CURSO
Identificar, seleccionar y aplicar eficientemente tipos de datos abstractos, métodos de ordenamiento y búsqueda para la optimización del rendimiento de soluciones de problemas del mundo real.
COMPETENCIAS PREVIAS
• Utilizar técnicas de modelado para la solución de problemas.
• Aplicar la sintaxis de un lenguaje orientado a objetos.
• Aplicar un lenguaje orientado a objetos para la solución de problemas.
CONTENIDO TEMÁTICO
Unidad 1. Introdución a las estructuras de datos
1.1 Tipos de datos abstractos (TDA).
1.2 Modularidad.
1.3 Uso de TDA.
1.4 Manejo de memoria estática.
1.5 Manejo de memoria dinámica
Unidad 2. Recursividad
2.1 Definición
2.2 Procedimientos recursivos
2.3 Ejemplos de casos recursivos
Unidad 3. Estructuras lineales
Listas.
Operaciones básicas con listas.
Tipos de listas.
Listas simplemente enlazadas.
Listas doblemente enlazadas.
Listas circulares.
Aplicaciones.
Pilas.
Representación en memoria estática y dinámica.
Operaciones básicas con pilas.
Aplicaciones.
Notación infija y postfija.
Recursividad con ayuda de pilas.
Colas.
Representación en memoria estática y dinámica.
Operaciones básicas con colas.
Tipos de colas: Cola simple, Cola
circular y Colas dobles.
Aplicaciones: Colas de prioridad.
Unidad 4. Estructuras no lineales
4.1 Arboles.
4.1.1 Concepto de árbol.
4.1.2 Clasificación de árboles.
4.1.3 Operaciones básicas sobre árboles binarios.
4.1.4 Aplicaciones.
4.1.5 Arboles balanceados (AVL).
4.2 Grafos.
4.2.1 Terminología de grafos.
4.2.2 Operaciones básicas sobre grafos.
UNIDAD 5. Métodos de Ordenamiento
5.1 Algoritmos de Ordenamiento Internos
5.1.1 Burbuja.
5.1.2 Quicksort.
5.1.3 ShellSort.
5.1.4 Radix
5.2 Algoritmos de ordenamiento Externos
5.2.1 Intercalación
5.2.2 Mezcla Directa
5.2.3 Mezcla Natural
UNIDAD 6. Métodos de búsqueda
6.1 Búsqueda secuencial
6.2 Búsqueda binaria
6.3 Búsqueda por funciones de HASH
UNIDAD 7. Análisis de Algoritmos
7.1 Complejidad en el tiempo.
7.2 Complejidad en el espacio.
7.3 Eficiencia de los algoritmos.
FUENTES DE INFORMACIÓN
1. Cairo, Osvaldo; Guardati, Silvia. Estructura de Datos, Tercera Edición. Mc Graw Hill, México, 2006.
2. Joyanes Aguilar, Luis. Fundamentos de Programación. Algoritmos y Estructuras de Datos. Tercera Edición 2003. McGraw Hill.
3. Guardati, Silvia. Estructura de Datos Orientada a Objetos Algoritmos con C++, Primera
Edición. Prentice Hall, México, 2007.
4. Mark Allen Weiss. Estructura de datos en Java. Ed. Addison Wesley.
5. C. Thomas Wu. Introducción a la Programación Orientada a Objetos con Java. Ed.Pearson Educación.
6. Decker, Hirshfield. Programación con Java. Ed. International Thomson Editores.
7. Roman Martinez, Elda Quriga. Estructura de Datos Referencia practica con orientación a objetos. Ed. Thomson, Mexico, 2004.