Data Structure and Algorithms implemented in Java