1. Implement the remove operation for the HashMap ADT.
2. Design and implement an iterator for use with the implementation of the HashMap ADT
3. Modify the implementation of the HashMap ADT to:
(a) Use linear probing instead of double hashing
(b) Use quadratic probing instead of double hashing
(c) Use separate chaining instead of closed hashing