Core Data Structures and Algorithms for Problem Solving