1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Andru [333]
3 years ago
10

Create a program which reads in CSV data of Creatures and loads them into aHash Map. The key of this hash map will be the name o

f each creature. For your hash function, you can simply use the sum of all ASCII values. You can also come up with your own hash function. Your program should present a menu to the user allowing them to look up a creature by name. Additionally, create a function that allows the user to insert a new creature. This creature should be added to the existing hash map. If the name entered by the user already exists, DO NOT ADD IT TO THE HASH MAP. Simply report that the creature already exists. If the creature is unique and successfully added, report the calculated index value. Your hash array should start as size4. You will need to implement a rehashing function to maintain a load factor of 0.75. Collision resolution should be handled via separate chaining with linked lists.
Other Requirements
•Read in a CSV file from the command line when running the program.
•Convert the raw CSV data into the creature struct and add it to a HashMap
•Make sure you properly release all of your allocated memory.
•Format your code consistently.
•Function declarations, structs, and preprocess directives should be placed in a corresponding header file.
•Save your code for this problem ascreature_hash.(c|h).
Creature struct
typedef struct {
char *name;
char *type;
int hp;
int ac;
int speed;
} Creature;
Example Run
1. Search

2. Add Creature

3. Exit

> 1

Enter name: Terrasque

Unable to find "Terrasque"

1. Search

2. Add Creature

3. Exit

> 2

Enter name: Storm Giant

Enter type: Huge giant

Enter HP: 230

Enter AC: 16

Enter speed: 50

Storm Giant added at index 3.

CSV file: Name, hp, ac, speed, type

Rakshasa,110,16,40,Fiend
Priest,27,13,25,Humanoid
Berserker,67,13,30,Humanoid
Fire Elemental,102,13,50,Elemental
Kraken,472,18,20,Monstrosity
Centaur,45,12,50,Monstrosity
Mage,40,12,30,Humanoid
Hell Hound,45,15,50,Fiend
Basilisk,52,15,20,Elemental
Androsphinx,199,17,40,Monstrosity
Efreeti,200,17,40,Elemental
Balor,262,19,40,Fiend
Chain Devil,142,19,40,Fiend
Adult Black Dragon,195,19,80,Dragon
Adult Blue Dragon,225,19,80,Dragon
Adult Red Dragon,256,19,80,Dragon
Please help in C
Computers and Technology
1 answer:
Mekhanik [1.2K]3 years ago
8 0

Answer:

Explanation:

class TableInput{

    Object key;

    Object value;

    TableInput(Object key, Object value){

       this.key = key;

       this.value = value;

   }

}

abstract class HashTable {

   protected TableInput[] tableInput;

   protected int size;

   HashTable (int size) {

       this.size = size;

       tableInput = new TableInput[size];

       for (int i = 0; i <= size - 1; i++){

           tableInput[i] = null;

       }

   }

   abstract int hash(Object key);

   public abstract void insert(Object key, Object value);

   public abstract Object retrieve(Object key);

}

class ChainedTableInput extends TableInput {

   ChainedTableInput(Object key, Object value){

       super(key, value);

       this.next = null;

   }

    ChainedTableInput next;

}

class ChainedHashTable extends HashTable {

   ChainedHashTable(int size) {

       super(size);

       // TODO Auto-generated constructor stub

   }

   public int hash(Object key){

       return key.hashCode() % size;

   }

   public Object retrieve(Object key){

       ChainedTableInput p;

       p = (ChainedTableInput) tableInput[hash(key)];

       while(p != null && !p.key.equals(key)){

           p = p.next;

       }

       if (p != null){

           return p.value;

       }

       else {

           return null;

       }

   }

   public void insert(Object key, Object value){

       ChainedTableInput entry = new ChainedTableInput(key, value);

       int k = hash(key);

       ChainedTableInput p = (ChainedTableInput) tableInput[k];

       if (p == null){

           tableInput[k] = entry;

           return;

       }

       while(!p.key.equals(key) && p.next != null){

           p = p.next;

       }

       if (!p.key.equals(key)){

           p.next = entry;

       }

   }

   public double distance(Object key1, Object key2){

       final int R = 6373;

       Double lat1 = Double.parseDouble(Object);

   }

   }

You might be interested in
AYUDAAA..... DARÉ TODOS LOS PUNTOS QUE PUEDA.
Eddi Din [679]

Answer:

HELP ... I WILL GIVE ALL THE POINTS IT CAN.

THE QUESTIONS ARE:

1. ACCORDING TO THE SUBCLASSIFICATION OF EACH WEB SITE AS YOU WOULD DEFINE THE TYPES OF THE WEBSITE.

2. WHAT IS THE DIFFERENCE BETWEEN EACH SUBCLASSIFICATION OF THE WEBSITES

3. LIST EXAMPLES OF EACH SUBDIVISION

THE SUBCLASSIFICATIONS IN QUESTION ARE: SITE BY HEARING, BY DYNAMISM BY OPENING, BY DEPTH AND BY OBJECTIVE

Explanation:

What is the question needed to be answered?

3 0
3 years ago
The general who directed the project responsible for the "Fat Man” graduated from what alma mater in 1918?
krek1111 [17]
Stafford Leak Warren (July 19, 1896 - July 26, 1981) was an American physician and ... He was responsible<span> for the health and safety of the thousands of personnel ... The medical school had opened in 1925 and did not </span>graduate<span> its first class ... Brigadier</span>General<span> Leslie R. Groves, the director of the Manhattan </span>Project<span> </span>
7 0
4 years ago
Read 2 more answers
this weekend you areplanning to complete part of your assignment at the library to do this you need to store data on a removable
Archy [21]
A flash drive, it can be put into a USB port and the computer will register it and you should be able to pull up anything you store on it on a another computer or device you are using.

4 0
4 years ago
In this problem, we want to compare the computational performance of symmetric and asymmetric algorithms. Assume a fast public-k
MariettaO [177]

Answer:

The AES decryption time is 8 minutes

Explanation:

GIVEN THAT:

The 1 GByte is equal to 230 bytes and equal to 233 bits

The RSA decryption time is calculated as = 233 / (100*230 )

= 83886. 06 seconds

= 23 hours

The RSA decryption time is 23 hours

The AES decryption time is calculated as = 233 / (17 * 230 )

= 481.81 seconds

= 8 minutes .

The AES decryption time is 8 minutes

4 0
4 years ago
When testing an abrasive wheel by tapping the wheel gently with a light, non-metallic instrument you notice that the wheel sound
elena-s [515]
No. If it  is cracked or damaged THROW IT AWAY. I can tell you from personal experience, not much worse than a wheel breaking apart while spinning and embedding chunks of the wheel in your chest and face.
3 0
3 years ago
Read 2 more answers
Other questions:
  • Do you believe that OOP should be phased out and we should start working on some alternative(s)?
    6·1 answer
  • Operating systems that have windows and icons have which type of user interface?
    15·1 answer
  • To prevent class objects from being copied or assigned, you can:
    8·1 answer
  • You have no control over who views your social network information
    13·2 answers
  • You easily can give slides in a presentation a professional and integrated appearance by using a placeholder.
    11·1 answer
  • The parallax perspective says that objects that are close up appear to move __________ than far away objects.
    10·1 answer
  • Websites whose URL’s contain tildes (~) are usually published by the government. TRUE or FALSE.
    8·2 answers
  • Match the title of the work of fiction to the description given.
    8·1 answer
  • write ms-dos command to list all the files and folders of EIGHT sub directory of C: drive in ascending order according to file n
    5·1 answer
  • What do other people think of e.t <br> in the movie E.T
    5·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!