Estructuras de Datos y Algoritmos (2010)
Diagrama de temas
-
Profesores
Michael González Harbour
Departamento de Matemáticas, Estadística y Computación
El principal objetivo de este curso es conocer los fundamentos del diseño, análisis e implementación de estructuras de datos básicas y de sus algoritmos de manipulación, aplicando los principios de abstracción y descomposición orientada a objetos. Asimismo se pretende conocer las principales aplicaciones de las estructuras de datos básicas. El lenguaje de programación en el que se basa el curso es Java. El material se estructura en dos partes: en la primera se definen las principales estructuras de datos abstractas y se analizan desde la perspectiva del usuario; en la segunda parte se profundiza en las técnicas de implementación de estas estructuras de datos.
Palabras Clave de la Asignatura
Java, Estructuras de Datos, colas, pilas, árboles, Informática, algoritmos, Programación, listas, grafos
-
Datos identificativos de la Asignatura
-
Denominación: Estructuras de Datos y Algoritmos (2010)
-
Código:
-
Departamento: Departamento de Matemáticas, Estadística y Computación
-
Área de Conocimiento:
-
Tipo: Troncal
-
Curso y cuatrimestre: Segundo
-
Título: Grado en Ingeniería Informática
-
Centro: Facultad de Ciencias
-
Web:
-
Profesor responsable: Michael González Harbour
Programa de la asignatura
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
-