Diagrama de temas

  • Estructuras de Datos y Algoritmos (2010)

    maquinas-termicas.jpg


    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

  • Programa

    programa

    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