Implementing various data structures and algorithms for fun and practice