Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching - Sedgewick