Implementing various data structures and algorithms for practice