Este libro presenta una amplia variedad de estructuras de datos y de métodos algorítmicos con el objetivo de servir como texto base para uno o dos cursos avanzados de programación. El contenido es apropiado para un semestre en estructuras de datos eficientes y otro semestre en métodos algorítmicos. Supone una exposición previa a dos o tres semestres de asignaturas de programación donde se hayan tratado los conceptos básicos, la sintaxis y semántica de un lenguaje de programación, la recursión, las estructuras de datos lineales y las nociones de clase y objeto. Es también recomendable una exposición previa o simultánea al paradigma de programación funcional, a los fundamentos de la especificación y verificación formal de programas y a asignaturas de lógica y matemática discreta.
En esta segunda edición se han corregido erratas detectadas en la edición anterior, se ha actualizado la bibliografía y se añadido una sección nueva en el capítulo 5 dedicado a la La unión de dos AVL en tiempo lineal.
El enfoque del libro es original por el hecho de que casi las dos terceras partes de los algoritmos se presentan especificados y verificados formalmente en la plataforma Dafny de verificación asistida. Como material asociado al mismo, se distribuyen los ficheros Dafny con el texto completo de todos los algoritmos, junto con sus especificaciones formales y asertos intermedios necesarios. El lector puede reproducir la verificación de los programas sin más que procesarlos con dicha plataforma. Dicho material puede descargarse de la página web que el libro tiene en la editorial Garceta: http://www.garceta.es.
Ricardo Peña Marí es Catedrático de Universidad del Departamento de Sistemas Informáticos y Computación de la Universidad Complutense de Madrid. Ha sido Profesor Titular, hasta 1991, de la Universidad Politécnica de Cataluña y ha trabajado anteriormente en dos empresas privadas en el desarrollo de grandes programas dentro de las áreas de telefonía y diseño asistido. Sus áreas actuales de investigación son el análisis estático de programas, la verificación asistida y las herramientas automáticas de pruebas.