El objetivo de este manual es ofrecer 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, su análisis y sus implementaciones en Java. El texto proporciona el rigor matemático necesario para cursos sobre Estructuras de Datos que enfatizan la teoría y para aquellos que requieren un mayor grado de análisis. Sin embargo, este material destaca del texto principal en forma de teoremas separados y, en algunos casos, secciones o subsecciones separadas. Está dirigido al tema de Estructura de Datos en el segundo curso de Informática.