COSC-052: Computer Science II

Project 4
Spring 2023

Due: F 4/24 4/21 @ 5:00 PM
10 points

This project involves implementing a List ADT using a doubly-linked list. To traverse the elements of the List, we will implement an iterator. You can decide whether to use sentinel nodes.

  1. You can use the implementation of Deque<T> from p3 as the basis for the implementation of List<T>. You can also use the Makefile from p3 for this project, with the appropriate modifications.

  2. The design of List<T> is inspired by the design of Java's LinkedList<T> and the design of ListIterator<E> is inspired by the design of Java's ListIterator<E>

  3. We did the dirty work of producing documentation for these two classes. Also see list.txt and iterator.txt, which contain the public interfaces of the class definitions. All of the method implementations must be optimally efficient in time and space, meaning the methods must not make unnecessary traversals or unnecessary copies of objects or nodes.

Instructions for Electronic Submission

In a file named HONOR, include the following statement with the appropriate modifications:

In accordance with the class policies and Georgetown's Honor System, 
I certify that, with the exceptions of the class resources and those
items noted below, I have neither given nor received any assistance
on this project.

Name
NetID

You will submit p4 exactly like you submitted p3. Make sure you remove all debugging output before submitting.

Plan B

If Autolab is down, upload your zip file to Canvas.

Copyright © 2019 Mark Maloof. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed.