Geschlossen

The purpose of this project is to familiarize with the map abstract data type (ADT) and its several implementations. Second, it is to reinforce the concepts of interfaces, inheritance, polymorphism, and the idea of empirical analysis.

In the project files folder you will find the Map.h file as well as several skeleton files. Map.h defines the interfaces for each of the template classes you will be implementing in this project.

To complete this project you must implement the following three template classes:

• HashMap

• TreeMap

• SearchTable

Each of the above template classes must extend the given abstract Map class. For each of the above classes you must implement the “Big-3” (Copy constructor, overloaded assignment operator, and destructor) in addition to the below requirements.

HashMap

This class will implement the map ADT by using a hash table. You may use either separate chaining or open addressing to resolve hash collisions. If you choose open addressing, you must use linear probing. If you you use separate chaining you are free to use the ArrayList class or the LinkedList class from project 1.

2

n

Put

Erase

Find

Size

1

0

0

0

0

1001

0

0.000999001

0.001998

0

. . .

. . .

. . .

. . .

. . .

9001

0

0.0885457

0

0.0433285

Table 1: CSV File Structure

TreeMap

This class will implement the map ADT by using a binary search tree. The bi- nary search tree can be implemented in a separate file (BinarySearchTree.h). This class will contain a private data member for the binary search tree which is used to implement the methods of TreeMap.

SearchTable

This class will implement the map ADT by using a sorted search table and the binary search algorithm. A private function Sort for sorting the array using a sorting method of your choice must be implemented, as well as a method Search which implements the binary search algorithm.

Once these classes have been implemented, use the [url removed, login to view] provided file to generate a CSV file of timing results. The timing results for HashMap, TreeMap, and SearchTable will be found in [url removed, login to view], [url removed, login to view], and [url removed, login to view] respectively. The structure for both of the CSV files is shown in Table 1. In the table, the n column denotes the input size and the next four columns give the average run-time in ms of the given operations. Plot these results using software like LATEX, Excel, Matlab, Mathematica, GNU Plot, etc.

Given these plots, answer the following questions:

1. What are the big-O run-times of the four Map operations for HashMap?

Do your empirical results agree with this? Why or why not?

2. What are the big-O run-times of the four Map operations for TreeMap?

3

Do your empirical results agree with this? Why or why not?

3. What are the big-O run-times of the four Map operations for SearchTable?

Do your empirical results agree with this? Why or why not?

4. Draw a class diagram of the classes in this project. Label the inheri- tance relationships as either being has-a or is-a.

Deliverables

These are the following files required for this assignment:

1. HashMap.h

2. [url removed, login to view] (optional)

3. TreeMap.h

4. [url removed, login to view] (optional)

5. SearchTable.h

6. [url removed, login to view] (optional)

7. BinarySearchTree.h (optional)

8. [url removed, login to view] (optional)

9. [url removed, login to view]

In the list of files above, the .cpp files are optional because the function implementations can be placed directly inside the .h files. Due to the way C++ implements templates, the function implementations must be visible when compiling the template class. This can be accomplished by either by providing the implementation inside the class itself, or by including the .cpp at the end of the .h file. If you do not have .cpp files, your .h files must contain the function implementations. The [url removed, login to view] file will contain the following sections:

1. Plots

2. Questions

4

3. Source Code

Combine all of the above deliverable files into one zip file and upload it to portal by the due date. Clearly specify your name in the report.

Fähigkeiten: C++ Programmierung, Excel, Word

Mehr darüber why use binary, why data structure, why binary, what is tree in data structure, what is tree data structure, what is the algorithm, what is template in cpp, what is structure in cpp, what is sorting data, what is sorting algorithm, what is linear search and binary search, what is data structure in c, what is data structure, what is data sorting, what is data in data structure, what is binary tree in data structure, what is binary tree in c, what is binary tree data structure, what is binary tree, what is binary search tree in data structure

Über den Arbeitgeber:
( 0 Bewertungen ) United States

Projekt-ID: #9053749

7 Freelancer bieten im Durchschnitt $123 für diesen Job

super2lao

A proposal has not yet been provided

$252 USD in 3 Tagen
(52 Bewertungen)
6.8
hbxfnzwpf

I am very proficient in c, c++. I have 16 years c++ developing experience now, and I have worked for 6 years. My work is online game developing, and mainly focus on server side, the language is c++ under linux. I used Mehr

$80 USD in 1 Tag
(52 Bewertungen)
6.1
wangbeizou

Hello. How are you? I saw your description and attached files. I understood it and can do it well. I have done several project like this. I'm an expert in Data Structures and Algorithms. And I know Java ,C/C++ an Mehr

$200 USD in 5 Tagen
(10 Bewertungen)
3.6
SahibYar

Dear Valued Customer I am a C++/C# developer for about 5+ year in a software development industry building cross platforms software. Knows all the minor details of C++ and C# including lambda expressions, managed co Mehr

$45 USD in 1 Tag
(16 Bewertungen)
3.7
rainbow

A proposal has not yet been provided

$133 USD in 10 Tagen
(1 Bewertung)
2.4
ReDMatH

i can do it in just 1 day... i'm C++ developer with 2+ year experience! CONTACT ME A.S.A.P for QUALiTY ASSURED WORK!

$50 USD in 1 Tag
(4 Bewertungen)
2.3
glitzz

Okay, i already got your project goal and i can start right away. But i have some questions. My completion rate is always 100% and i only bite what i can chew. Knock me please...

$150 USD in 5 Tagen
(3 Bewertungen)
1.9
SergeiShliakhtin

Hi, I do net recommend assigning this task to those who promise to complete in 1-3 days. They will download the code from internet and you take risk of not passing for 2 reasons: -some items may be not implemented (es Mehr

$100 USD in 10 Tagen
(0 Bewertungen)
0.0