Question: Please help! Finish and implement the instructed methods for StringList, BaseStringList, ArrayStringList, LinkedStringList, and Node classes given that StringList is the parent. The other classes

Please help! Finish and implement the instructed methods for StringList, BaseStringList, ArrayStringList, LinkedStringList, and Node classes given that StringList is the parent. The other classes must compile correctly and use StringList class as an interface.
BaseStringList: Create the abstract cs1302.p2.BaseStringList class such that it properly implements a subset of the abstract methods of StringList. Since BaseStringList is abstract, it is not mandatory to implement all methods of StringList within this class. The exact methods this class must implement are listed in the method section for BaseStringList in the provided UML diagram above. Remember, since BaseStringList is an abstract parent to both ArrayStringList and LinkedStringList, its methods must be implemented without reference to the underlying data structure. In other words, within BaseStringList, you cannot use arrays or nodes. The code contained in this class must be general enough to work with both. Note: The size instance variable in BaseStringList is shown as #size in the UML diagram to designate that it has protected visibility and, therefore, must be declared in your Java code using the protected visibility modifier. The child classes of BaseStringList inherit their own copies of this protected size instance variable and have direct access to them. This variable should be initialized in the BaseStringList constructor. You must NOT re-declare the size variable in either of the child classes. For more information about protected visibility, refer to the Protected Visibility reading. Note: The methods that are listed in the UML diagram in BaseStringList must be implemented in that class. You are not allowed to move any of them into ArrayStringList or LinkedStringList. You may, however, find that you can move one or more methods from ArrayStringList and LinkedStringList up into BaseStringList. Moving methods up is allowed. In fact, it is encouraged. Any method that you can move up only has to be written once! However, accomplishing this will require some thought. We hope that all of you spend some time trying to ensure that ArrayStringList and LinkedStringList only contain the methods that absolutely need to be implemented in the child classes! ArrayStringList: Create the cs1302.p2.ArrayStringList class such that it properly extends cs1302.p2.BaseStringList and fully implements the cs1302.adt.StringList interface with additional requirements listed below. You must explicitly define and document a default constructor for this class. The initial size of an ArrayStringList is 0 regardless of the list's underlying storage remember, the list's internal storage and the list itself are two different things. Here is the signature: public ArrayStringList(); Over the lifetime of an ArrayStringList object, its internal storage may change to accommodate more list elements. When your code increases the size of an ArrayStringList object's internal array storage, you should actively avoid: i) increasing the array size by one; and ii) doubling the size of the array. Increasing by one is wasteful as it requires making a new array and copying over all elements every time an item is added. Doubling the size of the array may be wasteful at large sizes as there may be many indices that contain null. Somewhere in between is more reasonable (increasing by 50%? increasing by 25%? We'll leave the details up to you). Furthermore, you should not set the initial array size to 0 or to the largest number that is allowed. There is a requirement related to this class's storage included in the Absolute Requirements section. LinkedStringList: Create the cs1302.p2.LinkedStringList class such that it properly extends cs1302.p2.BaseStringList and fully implements the cs1302.adt.StringList interface with additional requirements listed below. You must explicitly define and document a default constructor for this class. The initial size of a LinkedStringList is 0 regardless of the list's underlying storage remember, the list's internal storage and the list itself are two different things. Here is the signature: public LinkedStringList(); There is a requirement related to this class's storage included in the Absolute Requirements section. (100 points) Test Cases: The bulk of this project will be graded based on 50 or more test cases, each worth the same amount of points. This is the same as someone using the classes you wrote based purely on the interface definitions. If you implement the interface correctly, then you should pass the associated test cases. Non-Functional Requirements A non-functional requirement is subtracted from your point total if not satisfied. To emphasize the importance of these requirements, non-compliance results in the full point amount being subtracted from your point total. That is, they are all or nothing. (0 points)[RECOMMENDED] No Static Variables: Use of static variables is not appropriate for this assignm
Please help! Finish and implement the instructed

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!