Algorithms and Data Structures implemented in Java