¿Es necesario aprender matemáticas discretas antes de comenzar a aprender la estructura de datos y el algoritmo? ¿Y cuál será el mejor libro para hacer lo mismo?

No estoy seguro de lo que se hace en todas las escuelas, pero yo era A2A, por lo que en Duke específicamente, Data Structures and Algorithms es en realidad un requisito previo para Discrete Math, y Discrete Math es un requisito previo para el Diseño y Análisis de Algoritmos. El último curso de algoritmos suele ser más riguroso en términos de comprensión matemática y pruebas, por lo que el curso anterior en Matemática discreta es útil. En mi experiencia, no necesita conocimientos de Matemáticas Discretas para las Estructuras de Datos, ya que este es principalmente un curso de programación y solo está aprendiendo sobre algunos conceptos y estructuras básicas de informática.

Los libros populares para Matemáticas discretas y estructuras de datos son Matemáticas concretas: una base para CS [1], y Estructuras de datos y algoritmos en Java [2], respectivamente.

[1] Matemáticas concretas: una base para la informática (2ª edición): Ronald L. Graham, Donald E. Knuth, Oren Patashnik: 0785342558029: Amazon.com: Libros
[2] http://www.amazon.com/Data-Structures-Algorithms-Java-2nd/dp/0672324539