>>12221000Introduction to algorithms: A creative Approach (for having fun)
TAOCP (for the best book out there that covers it as thoroughly as possible)
Introduction to Algorithms (for a standard introduction to the topic that also covers most of it but just not as much as TAOCP)
The algorithm design manual to learn how to use the data structures