El objetivo de este manual es proporcionar una introducción práctica a las estructuras de datos y algoritmos desde el punto de vista del pensamiento abstracto y de la resolución de problemas. Se han intentado cubrir todos los detalles importantes relacionados con las estructuras de datos, sus análisis y sus implementaciones Java, alejándonos de las estructuras de datos que son teóricamente muy interesantes, pero que no se utilizan. Ofrece flexibilidad a los profesores en el tratamiento de los temas, minimizando la dependencia entre los distintos capítulos. Dirigido a la asignatura de Estructura de datos en 2º curso de grados de Informática.