Objetivos de Estructuras de Datos y Algoritmos
- Conocer los fundamentos del diseño, análisis e implementación de estructuras de datos básicas
- Conocer los fundamentos del diseño, análisis e implementación de sus algoritmos de manipulación
- aplicando en ambos los principios de abstracción y descomposición orientada a objetos.
- Conocer las principales aplicaciones de las estructuras de datos básicas
Objetivos concretos: conocimientos
- Conocer las especificaciones abstractas de las principales estructuras de datos
- Conocer los principales algoritmos de manipulación de las estructuras de datos básicas
- Conocer las principales aplicaciones de las estructuras de datos básicas
- Conocer distintas técnicas de implementación de las estructuras de datos y sus propiedades
Objetivos concretos: Habilidades
- Ser capaz de aplicar los principios de abstracción a las estructuras de información
- Saber diseñar la estructura de datos más eficiente para un determinado problema, dados unos requisitos de coste temporal y espacial
- Ser capaz de implementar estructuras de datos básicas usando un lenguaje orientado a objetos
- Ser capaz de razonar sobre la eficiencia de las diferentes implementaciones de una estructura de datos
Programa
1. Introducción
- Estructuras de datos abstractas
- Eficiencia de las estructuras de datos
- Interfaces y herencia múltiple
- Estructuras de datos genéricas
- Colecciones
- Iteradores
- Relaciones de igualdad y orden
2. Estructuras de datos lineales
- Colecciones o bolsas
- Conjuntos
- Listas y vectores
- Pilas
- Colas
- Colas de prioridad
- Mapas
- Aplicaciones
3. Estructuras de datos jerárquicas
- Árboles
- Recorrido y ordenación de los nudos
- El ADT árbol
- Árboles binarios
- Búsquedas en árboles binarios
- Aplicaciones
4. Grafos y caminos
- Concepto de grafo
- Definiciones
- La interfaz de las aristas
- La interfaz de los grafos
- Recorridos y búsquedas
- El problema del camino mínimo con y sin pesos
- Grafos acíclicos
- Aplicaciones
5. Implementación de Listas, Colas y Pilas
- Introducción a la implementación de estructuras de datos
- Pilas, colas y vectores implementados mediante arrays
- Implementaciones con listas enlazadas simples
- Listas enlazadas con cursores
- Listas doblemente enlazadas
6. Implementación de mapas, árboles y grafos
- Mapas y conjuntos implementados mediante tablas de troceado
- Técnicas de troceado abierto
- Técnicas de troceado cerrado
- Implementaciones de árboles
- Implementaciones de árboles binarios
- Árboles binarios equilibrados y conjuntos ordenados
- Árboles AVL
- Árboles rojinegros
- B-árboles
- Implementación de colas de prioridad y conjuntos ordenados mediante montículos binarios
- Implementación de grafos