Java implementations of several data structures