Doubly Linked Lists
Compared to a singly linked list
inserting and deleting nodes is a bit slower
this is because both the next and the previous
members must be updated
however, updating the extra pointer in each
node inserted/removed is still much faster than
doing a complete list traversal to find a
predecessor (or to backup 3 nodes...)