Estructuras de Datos y Algoritmos

Esta es la materia que separa al programador del ingeniero. En Programación I y II aprendiste a hacer que tu programa funcione. Acá aprendés a hacer que escale.

¿La diferencia? Un programa que tarda 1 segundo con 100 datos puede tardar 3 horas con 100,000 si está mal estructurado. Y la diferencia no es la computadora, es el algoritmo.

Quién debería leer este libro

Prerrequisitos

Materia Por qué
Programación II Recursión, dicts, sets, OOP.
Matemática básica Logaritmos y exponentes para análisis de complejidad.

Cómo está organizado

Cada capítulo profundiza una familia de estructuras y los algoritmos asociados:

# Capítulo Contenido
1 Complejidad Notación Big-O, análisis de tiempo y espacio
2 Listas enlazadas, pilas y colas Estructuras lineales, casos de uso
3 Árboles BST, AVL, heaps, recorridos
4 Hashing Tablas hash, colisiones, aplicaciones

Filosofía del libro

Cada estructura nace para resolver un problema. No la presentamos como "definición → implementación" sino como "¿qué problema tiene la estructura previa? → la nueva lo resuelve". Vas a entender no solo cómo se usan, sino por qué existen.

Lenguaje

Implementaciones en Python, porque ya lo manejás. Pero los conceptos son universales — los vas a ver en C, Java, Rust, Go con sintaxis diferente, misma sustancia.

Vamos.