Double Linked List
there is an interactive demonstration of a double linked list HERE
For this assignment you will create a functional doubly linked list.
YOU MUST:
1. make it a template class
2. put all your function bodies inside the class
3. make your DListNode an inner class
4. copy over the testfiles and use ALL of them to test your code as well as your own test files
5. your code should have no compilation warnings
6. make your code such that no combination of function calls will result in a seg fault, throw exceptions when needed
7. do the standard file logging
8. Change your class name, inner node name and FILENAME to DLinkedList instead or SLinkedList.. you will lose points if you dont
be sure to look at the Doubly Linked List Demo, link on the main page it will help get an idea of the steps you need to take for the functions
use your Single Linked List files as a foundation
copy the main , LinkedList and Makefile from your last lab
you will provide the same functionality as the example
Doubly Linked List Menu
==================================================
i Insert a value into the list
a Insert a value After a value
d Delete a value from the list (1st from front)
c Does the list contain a specific value
p Print the value returned by ToString
m Show this menu
x Exit
==================================================
Enter selection:
MAKE sure you output matches the examples when you redirect in the testfiles
MAKE sure your ToString output can be used on the viewlist page
viewlist
in order to test you are going to want to
add values,
delete values,
add at the front, middle and back
delete from the front, middle and back
print out the ToString output and make sure
the head always has the address of the first node
the tail always has the address of the last node
the next and previous pointers of every node are set correctly
test that your contains work for both exiting values an non existing ones
if your ToString output correctly works with the viewlist app it will help
identify problems