Implementations of basic data structures and algorithms in Java