C++: An Introduction to Data Structures