Circular Doubly-Linked Lists

Complete the assignment specified in the handout, "Doubly Linked List Implementation of the List ADT". Again, the assignment consists of multiple parts, though this time to receive an 'A' you must complete all parts.

The first part (called "Prelab Exercise") is a straightforward implementation of the List interface. The methods comprising the interface are documented on pp.172-4, and the definition of the List interface is in List.java. The file, DList.jshl contains a skeleton implementation. Start with that, making a copy called DList.java and flesh it out to complete the implementation. To test your implementation, complete the second part, "Bridge Exercises". This consists of using a provided test program, TestDList.java in conjunction with your DList.java. As with the previous assignment, TestDList allows use of the keyboard to invoke various methods on a DList object. Unlike the previous assignment, you have to provide your own test plan for your class.

The third part of the assignment is "In-lab Exercise 1", which is to implement a "reverse" method, and then to define and use a test plan for this operation.

The fourth part of the assignment is "In-lab Exercise 2", which is to implement a "cursor" object within the list. Note that you will be providing a different class, DList2, for this part of the assignment. (Start by copying DList.java, then edit that file to change the class name. Eclipse can do this easily via the Refactor:rename menu.) Again you must provide a test plan. You must also provide a testing program to complete the plan. This will be a modified copy of TestDList called TestDList2.java.

The last part of the assignment is implementation of the "Anagram Puzzle ADT". First, finish the implementation of AnagramPuzzle.java (the skeleton is in AnagramPuzzle.jshl). Note that this class makes use of the cursor capabilities provided in the preceding part. To check that your class is correct, use the provided test program, TestAnagramPuzzle.java and the test plan in your handout.