Data Structures with C++ Using STL (2nd Edition)