Semestre 2020-2.
Profesor Canek Peláez.
Ciencias de la Computación. Facultad de Ciencias. Universidad Nacional Autónoma de México.
Durante el curso se cubrió la teoría y la implementación de distintas estructuras de datos, así como ciertos algoritmos asociados a estas.
Algunas de las estructuras vistas son:
- Arreglos.
- Listas.
- Pilas.
- Colas.
- Árboles binarios.
- Árboles binarios completos.
- Árboles binarios ordenados.
- Árboles Rojinegros.
- Árboles AVL.
- Gráficas.
- Montículos Mínimos.
- Diccionarios.
- Conjuntos.
Algunos de los algoritmos vistos son:
- Búsqueda Binaria.
- Merge Sort.
- Quick Sort.
- Selection Sort.
- Búsqueda Binaria.
- Breadth-First Search.
- Depth-First Search.
- Álgoritmo de Dijkstra.
- Función de dispersión XOR.
- Función de dispersión Bob-Jenkins.
- Función de dispersión de Daniel J. Bernstein.
En los laboratorios se complementó la teoría vista en clase a través de distintas prácticas y proyectos. El lenguaje de programación utilizado fue Java en su versión 8.
- Proyecto 1: Ordenador lexicográfico de lineas (clon de la herramienta
sort
en UNIX). - Proyecto 2: Generador de gráficas SVG de estructuras de datos.
- Proyecto 3: Generador de reportes HTML de contenido de archivos de texto.
- Práctica 1: Listas.
- Práctica 2: Pilas, colas, ordenamientos y búsquedas.
- Práctica 3: Árboles binarios, binarios completos y binarios ordenados.
- Práctica 4: Árboles rojinegros.
- Práctica 5: Árboles AVL.
- Práctica 6: Gráficas.
- Práctica 7: Montículos Mínimos.
- Práctica 8: Trayectoria mínima y algoritmo de Dijkstra.
- Práctica 9: Funciones de dispersión.
- Práctica 10: Diccionarios.
- Práctica 11: Conjuntos y gráficas mejoradas.