Vassar College, CMPU-102-51 Spring 2020 April 1, 2020 Peter Lemieszewski The goal is to consolidate and exercise knowledge pertaining to: - Structural recursion - Linked lists - Java interfaces - Object-oriented programming Notes on how to read this document: - If an instruction involves copying code or commands, the relevant text shall be enclosed in quotes. Do not include them. - This document is formatted with a standard 80-character terminal in mind. -------------------------------------------------------------------------------- In this lab you shall implement a working version of the linked list data structure we discussed during the lectures. A starter code package is provided, which you should download and modify as necessary. An interface IList is provided. It specifies a few useful methods that all list implementations should support. The goal is for you to create a class called "MyLinkedList" that implements this interface. An auxiliary class "Node" that represents a node in the list is provided. Compared to what we have seen in the Node class, be mindful of the special conditions that arise when modifying the first element of the list. I.e. you need to make sure that the head node reference is kept up-to-date. Drawing a picture of how you want nodes to appear is a good idea. A class "MyLinkedListTest" is provided to test your implementation. It uses assert statements to test the output of your list methods. You'll have completed the lab once you've implemented the list and the main method of the "MyLinkedListTest" class can be executed without throwing any assertion errors. Note: since assertions are used to test correctness, be sure to use the -ea flag to enable assertions if running java outside of BlueJ. -------------------------------------------------------------------------------- When is this due? This lab will tak significantly more than 2 hours to complete. The April 8 lab will also be devoted to completing this lab. Upon completion Once the program is working as specified, please contact a coach or me to check your work and give you credit. It's important to do this during Wednesdays - the first Wednesday - to be sure your approach is correct. Next week, compress your *.java files) and submit them through Moodle. Use zip or tar or any compression software you are comfortable with.