# Finalizing the code for your solution

As you are working on finalizing the code for your solution, you are thinking that a B-Tree might be an elegant solution for the sorting and search algorithms. In order  to implement the solution in the most elegant fashion the use of recursion will be needed. You approach others in your department about the possibility of using recursion, and a few of them are not familiar with how it works. Describe recursion and give sample code to implement the Fibonacci Series.

High Level Implementation Instructions:

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.

The Contributor Name Algorithm needs to be implemented using the Sequential Search

An additional Search algorithm based on a Binary Search of the Contributor’s Name (this will include an additional Sorted Array of the contributor's name)

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

Search constructor: //the Search algorithm to implement is Sequential Search

An additional Search algorithm based on a Binary Search of the Contributor’s Name (this will include an additional Sorted Array of the contributor's name)

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

Deliverables:

The design document that includes the recursion example.

A fully documented program to load the data creating a sorted linked list.

A test plan to show how the program runs and can be executed

A screenshot showing that the program loaded the data, and after all data is loaded perform the following:

Print All showing the sorted list.

Contributor information for Georg Pipps

Contributor information for ID 25

An analysis of the differences in performance of the Sequential Search versus the Binary Search