Algorithms, Data Structures and Interview Questions in Java.