DATA STRUCTURES AND PROBLEM SOLVING USING JAVA