from 0 to 1 data structures amp algorithms in java