Data Structure Assignment Help
Implement an ordered list ADT as described in chapter 6 of your textbook. Specifically you must implement:
- contains (also called find)
You may not use the internal Java SE classes but rather must implement the operations yourself. You may use the code from chapter 6 of your textbook to help you; in fact I highly encourage this. However, some operations are not completed in the textbook implementation and you’ll need to write these yourself.
You may choose to implement the ADT list operations as either a linked implementation or an array based implementation.
You must implement operations with an efficient run-time. For example, add should not be an O(n^4) implementation.
Create a Test Driver
In order to verify your ADT you will need to create a test driver. You can do this in a separate class or as part of a static main inside your ADT class. Your test driver should provide a series of commands to let the user perform any ADT operation in any order as many times as desired. You may implement the test driver as a console based menu system, or you can use Java Swing components if you prefer to provide a user interface experience. You will be graded on the usability and completeness of your test driver.
For example, if you implement a console based test driver, you should display a menu of possible options to the user such as:
1) Create a new list (empty the list)
2) Remove a user inputted item
3) Locate an item in the list
4) Display the current size of the list
5) Add an element to the list
6) Display the current list
The menu should loop and provide an interface to the current working list, so the user can enter successive commands in order to fully test your ADT operation. You can then execute your test plan using this interface.
Ensure that each command asks for appropriate additional input from the user (such as in the add command) and outputs the appropriate information to the user. If no output is required at minimum a confirmation of the command completing is needed. I.e. “Removal successful”.
Along with your brief lab summary and write-up, please include the answers to the following lab questions:
1) What is the Big-O run-time of each of the ADT operations you’ve implemented?
2) If your implementation were changed to an unordered array list, which ADT operations if any would have different Big-O times and what would they become?
3) If your implementation were changed to an unordered linked list, which ADT operations if any would have different Big-O times and what would they become?
General Programming and Submission Notes
For all programming assignments in this course you may assume console input and output. That is, System.out.println is sufficient for output. That being said you may choose to display information via Java Swing interface components for user input/out. Simply be cautious of the time you are spending on these display components as this isn’t the primary focus of the assignment.
You should not use any external APIs or java code that you haven’t yourself written (even if it’s just to demonstrate something) excepting of course the Java SE classes themselves. However you may not include or use the Java SE classes for data structures or algorithms the assignment specifically asks you to implement.
Your test plan and write-up should be only a few sentences or a paragraph or two on your process, problems encountered, and outstanding issues and may optionally include your test plan. You do not need to submit your test plan but you should always have one! Check your work!
You should submit all of your java class files and your write-up in any reasonable format (word doc, text, pdf, rtf) as attachments in your assignment dropbox folder. You may either zip them up together or simply include them as single attachments. For ease of grading I prefer that you don’t use packages as it complicates a simple command compile. However if you do use packages try to keep names and layers simple.
The assignment is worth 100 points.
|Functionality||70 Points||Your Score:|
|ADT operations implementation||/ 50|
|Test Driver ,ability to test all commands and usability||/ 20|
|Test Plan and Writeup||20 Points||Your Score:|
|A brief write-up of how you designed your program, any problems encountered and your test plan||/ 10|
|Answers to Lab questions||/ 10|
|Code Style and Project Design||10 points||Your Score:|
|Code Style – Class comments, method/variable comments, inline comments. See announcements post for details.||/ 10|