Algorithms in C++, Parts 1-4: Fundamentals, Data Structure - Robert Sedgewick (Addison-Wesley, 2007)