practice writing data structures and algorithms