Project task deliverables

Any java.util
you cannot use this for the Project
Cannot import any java.util Java data structures, as they are to be programmed from scratch by the student.
At this point, you want to put together the work that has been completed to deliver a working program for alpha testing. You will read the contributor information from a file similar to this table below; it is a comma delimited (CSV) file.

Jeff Sherman USA 9035551212 100 50
John Dallas USA 9035552121 200 51
Bob Atlanta USA 9035551111 300 52
Bill Chicago USA 9035553333 400 53
Sam Phoenix USA 9035557777 500 54

• First Name in first column
• Last Name in second column
• Country in third column
• Phone # in fourth column
• Donation amount in fifth column
• Contributor ID in sixth column
As each record is read, create a sorted Linked list of the contributors using the Insertion sort method. You also need to maintain your table, with one modification. You need to add an object to the Hash Collision Object that is a pointer to the data in the Linked list. In addition, you need to implement Contributor search functionality based on a Contributor Name. Your design should include the following:

High Level Implementation Instructions:
• Sorted Linked list
• Sorted using Insertion sort
• Hash bucket of size 5 with a collision solution using a linked list (no need to order)
• A Search Algorithm based on ID and Contributor Name.
o The Contributor Name Algorithm needs to be implemented using a Sequential Search

Each contributor will have the following information:
• Name: String; //the name of the contributor
• City: String; //the city in which the contributor lives
• Country: String; //the country in which the contributor lives
• Phone: String; //the phone number for the contributor
• Contribution: Double; //the amount of the contribution given by the contributor to the zoo
• ID: Integer; //identifier key for future needs

Contributor functions/methods:
• Input constructor: //to accept a string for the name and additional information for each contributor (this should call the Add constructor to implement the sorted list)
• Print constructor: //to print out the contributor data
• Print All constructor: //to print the entire list of contributor names
• Add constructor: //to traverse the Linked list and find the proper location for adding the instance
• Search constructor: //the Search algorithm to implement is Sequential Search

Each hash bucket collision item will have the following information:
• ID: Integer; //identifier key for future needs
• Contributor Address: Pointer; //a pointer to the address of the contributor instance in the sorted linked list

Hash bucket functions/methods:
• Input constructor: //to accept a string for the name and additional information for each contributor (you will only need the ID portion of the input data)
• Hash Function constructor: //Hint: You only have 5 Hash buckets so the function can be very a simple calculation
• Pop constructor
• Push constructor
• Print constructor: //to show the information of the contributor based on a given ID

• A fully documented program to load the data creating a sorted linked list.
• A screenshot showing that the program loaded the data, and after all data is loaded perform the following:   
o Print All showing the sorted list.
o Contributor information for Georg Pipps
o Contributor information for ID 25

Solution PreviewSolution Preview

This material may consist of step-by-step explanations on how to solve a problem or examples of proper writing, including the use of citations, references, bibliographies, and formatting. This material is made available for the sole purpose of studying and learning - misuse is strictly forbidden.

public class Hash<T extends Comparable<T>> {//makes contributor objects comparable

    //member variables
    private final LinkedList hashtable[];
    int tableSize;

    public Hash(int size) {

       tableSize = size > 0 ? size : 5;
       hashtable = new LinkedList[tableSize];
       for (int i = 0; i < hashtable.length; i++) {
            hashtable[i] = new LinkedList();

    * hash the contributor's id
    * @param contributor
    * @return
    public int hashFunction(Contributor contributor) {
       int id = contributor.getId();
       return id % tableSize;

    * add new contributor
    * @param c
    public void add(T c) {
       if (c != null && c instanceof Contributor) {
            int hashIndex = hashFunction((Contributor) c);
            hashtable[hashIndex].push(new LinkedListNode(c, null, null));
$50.00 for this solution

PayPal, G Pay, ApplePay, Amazon Pay, and all major credit cards accepted.

Find A Tutor

View available Data Structures and Algorithms Tutors

Get College Homework Help.

Are you sure you don't want to upload any files?

Fast tutor response requires as much info as possible.

Upload a file
Continue without uploading

We couldn't find that subject.
Please select the best match from the list below.

We'll send you an email right away. If it's not in your inbox, check your spam folder.

  • 1
  • 2
  • 3
Live Chats