Java Data Structures, Algos and Their Test Clients