I'll use the hash library to speed up the add_node_at and elem_at functions. The
hash table will store every n-th node in the list so that when you need to add
at i, you find i/n and index into the hash table to start your add from there.