Exercise 20.1-1

Modify the data structures in this section to support duplicate keys.

Instead of a bit vector we will use an array of doubly linked lists which hold a number of nodes equal to the number of duplicate elements of that value. Values that were zero will be represented by an empty linked list. All other properties of these data structures remain the same (through the predecesor and successor operations must now account for the presence of a linked list - hence the need for them to be doubly linked).