Code DistributionThe project's code distribution is available by checking out the project named LinkedListsProject. The code distribution provides you with the following:
- listClasses package → Where classes implementing linked lists will appear.
- tests package → Where you should place your student tests.
- You are expected to implement two classes: BasicLinkedList and SortedLinkedList.The javadoc describing what you need to implement can be found at Project Javadoc.
- The linked list in our project has a head and tail reference. The next link of the last node points to null.
- Methods addToEnd(), getLast(), retrieveLastElement() rely (and must use) the tail reference.
- The head and tail must be set correctly when list operations update the list.
- You can use recursion for the implementation of methods.
- Two methods must be implemented using recursion: getReverseArrayList() and getReverseList(). You are allowed to add an auxiliary function (only one) during the implementation of a recursive method. You MAY NOT add any instance variables nor static variables to support the implementation of a recursive method. If you do you will lose significant credit.
- Your code must be efficient. For example, you will lose credit if you perform an unnecessary list traversal(s) during the implementation of a method.
- If you see in the submit server the error "missing_component", the problem is that you are missing a required class. You can also get this error if you are not defining a generic class correctly. For example, your SortedLinkedList class is not being defined as expected. It is recommended that you try submiting your project immediately (if you have not done so yet) so you can identify this problem (your code may work in Eclipse but not in the submit server).
- Your student tests must include at least a test for each method of each class. Write tests as you develop your code and not at the end; this is the correct approach to develop student tests. Also, think how you can test your code so it will work with any data set. Hint: For a list, you can try inserting and deleting all the permutations for a set of numbers. This kind of hint is what you need to discover for future projects (and for your future job) by yourself.
- If you have a problem with your code and need assistance during office hours, you need to have a student test(s) that illustrates the problem you are experiencing. See Student Tests for information regarding the implementation of student tests.
- You may not shared your student tests with other students.
- The iterator you define may NOT be used to implement other list operations (e.g., add). The iterator is for users that want to iterate over the list.
- You need to implement a singly-linked list that relies on a head and tail reference.
- See Style Guidelines for information regarding style.
Honor's Section RequirementThe following requirement is for students enrolled in the honor's section.
- Implement the iterator's remove method for the BasicLinkedList class.
- Add a clone method to the BasicLinkedList class.