Concepts tested by this program:
New concepts tested by this program
            Generic Classes
            Ordered Linked List
Your assignment is to write a generic singly-linked list class and a generic sorted singly-linked list class that inherits from your generic singly-linked class.  There is no GUI required for this assignment.  Your list classes will be tested with Junit tests.
BasicLinkedList class
            This generic singly-linked list relies on a head (reference to first element of the list) and tail (reference to the last element of the list). Both are set to null when the list is empty. Both point to the same element when there is only one element in the list. A node structure has only two fields: data and next reference. The class must only define the following entities: an inner class Node, an inner class that implements Iterator (for the iterator method), head and tail references and an integer representing the list size. All the entities are defined as protected so they can be accessed by the subclass.  Follow the Javadoc that is provided.
SortedLinkedList class
            A generic sorted singly-linked list constructed using a provided Comparator.  It extends BasicLinkedList class.  Follow the Javadoc that is provided.
Exception Handling
UnsupportedOperationException – this exception is a Java library exception and will be returned by the addtoFront and addToEnd implementations of the SortedLinkedList class and by the remove method of the iterator.
NoSuchElementException – this exception is a Java library exception and will be returned by the next function within the iterator class when there are no more elements in the linked list.