Algoritmos y estructuras de datos I
Cursada sugerida
Segundo cuatrimestre del primer año, en paralelo con el curso “Lógica y teoría de números”.
Objetivos
Conocer y manejar estructuras de datos lineales y los algoritmos fundamentales sobre estas estructuras.
Correlatividades
Para cursar y aprobar el curso es necesario tener aprobado el curso “Introducción a la programación”.
Contenidos mínimos
- Introducción a las estructuras de datos. Punteros y memoria dinámica.Buenas prácticas de uso de memoria dinámica. Manejo de memoria dinámica en C. Definición de arreglos y matrices en memoria dinámica.
- Uso de arreglos como representación de conjuntos. Algoritmos de inserción, búsqueda y eliminación de elementos. Ordenamiento de arreglos: Algoritmo de inserción, Algoritmo de selección, Algoritmo quicksort y Algoritmo heapsort. Búsqueda binaria. Introducción a la complejidad algorítmica.
- Listas enlazadas. Algoritmo de recorrido. Algoritmos de inserción al comienzo, inserción al final e inserción en posiciones intermedias. Algoritmos de búsqueda y eliminación de elementos. Listas doblemente enlazadas. Algoritmos de recorrido.
- Pilas y colas. Implementación de pilas y colas sobre estructuras dinámicas. Algoritmos de inserción y consulta. Algoritmos sobre pilas y colas. Esquemas algorítmicos que utilizan estas estructuras.
Carga horaria
Dos clases teórico-prácticas por semana durante 16 semanas, una clase de 4 hs de duración y otra de 2 hs. Totalizando 96 horas de clase. Las clases se dictan en un laboratorio de computación.
Régimen de aprobación
Para aprobar el curso, se deben aprobar un Trabajo Práctico al final de cada unidad y un Final Oral.