Los algoritmos y las estructuras de datos son las herramientas básicas que necesita todo programador para construir aplicaciones que resuelvan problemas. Conocer uno (o varios) lenguajes de programación no es suficiente. Las estructuras de datos te permitirán organizar la información que el programa maneja, buscando la mayor eficiencia en espacio o en tiempo, según las necesidades de tu aplicación. Por otro lado, los algoritmos definen los pasos necesarios para resolver un problema. En esta obra combinaremos el aprendizaje de ambas partes. Por un lado, aprenderemos las estructuras de datos más comunes, sus pros y sus contras. Con estos ladrillos podrás construir las estructuras que necesites en tus proyectos. Por otro lado, aprenderemos las herramientas básicas para la elaboración de algoritmos y veremos unos cuantos ejemplos conocidos para familiarizarnos con ellos y así definir los algoritmos propios que requiera tu proyecto. Todo ello se ilustra con gran cantidad de ejemplos, ejercicios resueltos y proyectos prácticos, cuyo código estará accesible para el lector. Conocer y dominar estructuras de datos y algoritmos es fundamental para avanzar en tu carrera en el desarrollo de software.