Curso sobre diseño de algoritmos y estructuras de datos en C++.
-
Programación y abstracción
- ¿Qué es la abstracción?. Niveles de abstracción. (3)
- Abstracción funcional
- Abstracción de datos
- Tipos de datos
- Estructuras de datos
- Tipos abstractos de datos
- Ejemplo: TAD Fecha
-
Implementación de la abstracción usando C++
- Abstracción funcional en C++
- Tipos de datos en C++
- Estructuras de datos en C++
- Implementación de TAD en C++: POO
- Generalización de las estructuras de datos
- Repaso de C++: Programación Orientada a Objetos
- Ejemplo: Implementación del TAD Fecha
-
Introducción al estudio de algoritmos y su complejidad
- Complejidad de algoritmos
- Notación O grande
- Eficiencia con funciones recursivas
- Repaso de C++: Funciones, pasos de parámetros, punteros.
- Ejemplos de análisis de algoritmos
-
Uso de estructuras de datos estáticas
- TAD array
- Uso de arrays en C++
- Implementación del TAD array con programación orientada a objetos
- Repaso de C++: Templates
- Implementación del TAD array con programación genérica
- Análisis de eficiencia usando arrays en C++
-
Algoritmos de ordenación y búsqueda
- Algoritmos básicos de ordenación
- Algoritmos avanzados de ordenación
- Algoritmos de búsqueda
-
Uso de estructuras de datos dinámicas lineales
- Tipos de estructuras de datos dinámicas
- TAD de lista
- Implementación del TAD lista con programación estructurada
- Implementación del TAD lista con programación orientada a objetos
- Implementación del TAD lista con programación genérica
- Análisis de eficiencia usando listas en C++
- Otras estructuras de datos dinámicas: pilas, colas, colas de prioridades, listas doblemente enlazadas, montículos, tablas de dispersión, ...
-
Introducción a la Biblioteca de Plantillas Estándar (STL)
- Componentes de la Biblioteca
- Clases contenedoras: vector, deque, list, set, ...
- Iteradores
- Contenedores adaptadores: stack (pila), queue (cola) y priority_queue (cola_de_prioridad).
-
Uso de estructuras de datos dinámicas no lineales
- Árboles. Tipos. Árboles binarios.
- Recorrido de un árbol
- Algoritmos de búsqueda en árboles
- Grafos