1. Create a doubly-linked list class that has a sentinel node. Name your list class DList. The list should be circular and should support the following operations:

    1. insertBefore(self, value, node): inserts the value before node
    2. append(self, value): appends the value to the list
    3. erase(self, node): removes the node from the list
    4. __iter__(self) a generator function that returns the next node in the list.
    5. find(self, value): returns the first node that contains the target value, or None if the value is not in the list
    6. constructor should take a comparison function which returns true if two values are equal and false otherwise

  2. Name the file dlist.py

  3. Put the file in a package named list. Importing * from the package should import dlist.py. Remember you will need a __init__.py file.

  4. DListDriver.py is a driver program that you can use to test your program.