Java implementations of basic data structures and algorithms (for learning purposes)