For this homework, you will:
1. Implement a generic list class called IUDoubleLinkedList.
Your IUDoubleLinkedList class should use a doubly linked list to implement all of the methods required by the IUListWithListIteratorinterface. This interface includes all of the functionality of the IndexedUnorderedList interface with the added listIterator method that returns a ListIterator.
Create a class called DLLNode to use in your implementation. This could be a standalone class (like the nodes used in your single-linked list) or a private inner class of the double-linked list class.
2.Complete your test plan.
Implement the last 7 change scenarios from your test plan. In total, you should have implemented at least 600 test cases.
name your 7 test classes using the following format:
Test_[state of list before change]_[method changing list and any parameters]_[state of the list after the change]
Be sure to uncomment the lines in the newList method of the TestCase class.
Add the class names for all of test classes that you created to the provided iuDoublelinkedlist.xml file.
Run the tests to be sure your list class is working properly.
3. Implement a fully functional ListIterator for your IUDoubleLinkedList class.
Your ListIterator should implement the Java ListIterator interface.
For the iterator method required by the IndexedUnorderedList interface, you should return a ListIterator object. ListIterator extends Iterator and is, therefore, an Iterator.
Your ListIterator implementation should also include the optional remove, add, and set methods.
4.Create iterator test classes for each of the change scenarios that you completed for this assignment.
Create iterator test classes for the last 7change scenarios