Contenidos teóricos y prácticos de la asignatura
MÓDULO I
0. INTRODUCCIÓN. ALGORITMOS Y ESTRUCTURAS DE DATOS
¿Qué es un Algoritmo? Definición formal de algoritmo. Ejemplos de Algoritmo. Representación de un Algoritmo.
1. REPASO
Estructuras selectivas. Estructuras repetitivas. Estructuras de datos. Vectores, estructuras, uniones. Gestión dinámica de la memoria. Memoria dinámica y punteros. Subprogramas. Funciones. Objetos. Clases y objetos. Funciones. Sobrecarga de funciones. Ficheros.
MÓDULO II
2. ALGORITMOS SOBRE MATRICES DENSAS Y DISPERSAS
Comparación de números enteros. Comparación de números reales. Recorrido de un vector. Búsqueda secuencial de un elemento. Contabilización del número de ocurrencias de un elemento dentro de un vector. Búsqueda del menor o mayor. Suma de los elementos de un vector. Suma de los elementos pares de un vector. Suma de los elementos impares e un vector. Comparaciones con elementos reales. Producto escalar de vectores. Implementación de una matriz sobre un vector. Recorrido de una matriz por filas. Recorrido de una matriz por columnas. Suma de los elementos de la matriz. Suma de los elementos tales que la suma de los índices es par. Recorrido de la diagonal principal. Recorrido de la diagonal secundaria. Recorrido de la submatriz triangular inferior. Recorrido de la submatriz triangular superior. Suma de matrices. Producto de matrices. Obtención de submatrices. Representación de matrices escasas. Multiplicación de matrices escasas.
MÓDULO III
3. TIPO ABSTRACTO DE DATOS LISTA ENLAZADA.
Especificación formal del TAD lista. Implementación del TAD lista mediante estructuras estáticas. Implementación del TAD lista mediante objetos dinámicos. Operaciones sobre listas simplemente enlazadas: inserción, extracción, recorrido y búsqueda. Implementación de una lista ordenada.
4. TIPO ABSTRACTO DE DATOS LISTA DOBLEMENTE ENLAZADA.
Especificación formal del TAD lista doblemente enlazada. Implementación del TAD lista doblemente enlazada mediante objetos dinámicos. Operaciones sobre listas doblemente enlazadas: inserción, extracción, recorrido y búsqueda. Implementación de una lista ordenada. Implementación de una lista circular.
5. TIPO ABSTRACTO DE DATOS PILA.
Especificación formal del TAD pila. Implementación del TAD pila mediante estructuras estáticas. Implementación del TAD pila mediante objetos dinámicos. Evaluación de expresiones aritméticas mediante pilas.
6. TIPO ABSTRACTO DE DATOS COLA.
Especificación formal del TAD cola. Implementación del TAD cola mediante estructuras estáticas. Implementación del TAD cola mediante objetos dinámicos.
MÓDULO IV
7. RECURSIVIDAD Y BACKTRACKING.
Concepto de recursividad. Tipos recursivos de datos. Simulación de recursividad mediante una pila. Diseño de algoritmos recursivos. Eliminación de la recursividad. Divide y vencerás. Búsqueda exhaustiva sistemática. Proceso general de los algoritmos \"vuelta atrás\".
MÓDULO V
8. ALGORITMOS SOBRE CONJUNTOS
Representación de conjuntos. Inserción de elementos en un conjunto. Eliminación de elementos en un conjunto. Unión de conjuntos. Intersección de conjuntos. Diferencia de conjuntos. Diferencia simétrica de conjuntos.
0. INTRODUCCIÓN. ALGORITMOS Y ESTRUCTURAS DE DATOS
¿Qué es un Algoritmo? Definición formal de algoritmo. Ejemplos de Algoritmo. Representación de un Algoritmo.
1. REPASO
Estructuras selectivas. Estructuras repetitivas. Estructuras de datos. Vectores, estructuras, uniones. Gestión dinámica de la memoria. Memoria dinámica y punteros. Subprogramas. Funciones. Objetos. Clases y objetos. Funciones. Sobrecarga de funciones. Ficheros.
MÓDULO II
2. ALGORITMOS SOBRE MATRICES DENSAS Y DISPERSAS
Comparación de números enteros. Comparación de números reales. Recorrido de un vector. Búsqueda secuencial de un elemento. Contabilización del número de ocurrencias de un elemento dentro de un vector. Búsqueda del menor o mayor. Suma de los elementos de un vector. Suma de los elementos pares de un vector. Suma de los elementos impares e un vector. Comparaciones con elementos reales. Producto escalar de vectores. Implementación de una matriz sobre un vector. Recorrido de una matriz por filas. Recorrido de una matriz por columnas. Suma de los elementos de la matriz. Suma de los elementos tales que la suma de los índices es par. Recorrido de la diagonal principal. Recorrido de la diagonal secundaria. Recorrido de la submatriz triangular inferior. Recorrido de la submatriz triangular superior. Suma de matrices. Producto de matrices. Obtención de submatrices. Representación de matrices escasas. Multiplicación de matrices escasas.
MÓDULO III
3. TIPO ABSTRACTO DE DATOS LISTA ENLAZADA.
Especificación formal del TAD lista. Implementación del TAD lista mediante estructuras estáticas. Implementación del TAD lista mediante objetos dinámicos. Operaciones sobre listas simplemente enlazadas: inserción, extracción, recorrido y búsqueda. Implementación de una lista ordenada.
4. TIPO ABSTRACTO DE DATOS LISTA DOBLEMENTE ENLAZADA.
Especificación formal del TAD lista doblemente enlazada. Implementación del TAD lista doblemente enlazada mediante objetos dinámicos. Operaciones sobre listas doblemente enlazadas: inserción, extracción, recorrido y búsqueda. Implementación de una lista ordenada. Implementación de una lista circular.
5. TIPO ABSTRACTO DE DATOS PILA.
Especificación formal del TAD pila. Implementación del TAD pila mediante estructuras estáticas. Implementación del TAD pila mediante objetos dinámicos. Evaluación de expresiones aritméticas mediante pilas.
6. TIPO ABSTRACTO DE DATOS COLA.
Especificación formal del TAD cola. Implementación del TAD cola mediante estructuras estáticas. Implementación del TAD cola mediante objetos dinámicos.
MÓDULO IV
7. RECURSIVIDAD Y BACKTRACKING.
Concepto de recursividad. Tipos recursivos de datos. Simulación de recursividad mediante una pila. Diseño de algoritmos recursivos. Eliminación de la recursividad. Divide y vencerás. Búsqueda exhaustiva sistemática. Proceso general de los algoritmos \"vuelta atrás\".
MÓDULO V
8. ALGORITMOS SOBRE CONJUNTOS
Representación de conjuntos. Inserción de elementos en un conjunto. Eliminación de elementos en un conjunto. Unión de conjuntos. Intersección de conjuntos. Diferencia de conjuntos. Diferencia simétrica de conjuntos.