C++ Data Structures: A Laboratory Course