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]
2 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]2 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
Question 12 (1 point)
QveST [7]

Answer:

margins

Explanation:

the definition margins are the edges

8 0
3 years ago
If you feel your friend had a negative digital identity, what would you do or tell them in order to help them have a positive di
sladkih [1.3K]
Have them post more positive outcomes and help them understand that what they post stays there forever
4 0
2 years ago
Read 2 more answers
Where must virtualization be enabled for VM (virtual machine) software to work?
Lelu [443]

Answer:

b) BIOS/UEFI

Explanation:

Virtualization can be defined as a technique used for the creation of a virtual platform such as a storage device, operating system, server, desktop, infrastructure or computing resources so as to enable the sharing of resources among multiple end users. Virtualization is usually implemented on a computer which is referred to as the "host" machine.

Generally, virtualization must be enabled in the BIOS/UEFI for VM (virtual machine) software to work.

BIOS is an acronym for Basic Input/Output System while UEFI is an acronym for Unified Extensible Firmware Interface. BIOS/UEFI are low-level software that serves as an intermediary between the operating systems and the computer's firmware or hardware components. The UEFI is actually an improvement of the BIOS and as such is a modernized software.

Basically, the BIOS/UEFI is a software which is an essential tool or feature which must be enabled to link the virtual machine with the hardware components of the computer.

5 0
2 years ago
Write 5 chart types​
Lemur [1.5K]

Answer:

pie chart

line chart

area chart

bar charts

histogram

scatter plot

6 0
2 years ago
Drag the tiles to the correct boxes to complete the pairs.
inessss [21]
<h2>Answer:</h2><h2>Releases a new video of its new high - tech manufacturing facility; To create a customer alert about a new program. </h2>

<h2>2)Hosts an online sweepstakes. .....;To increase brand loyalty </h2>

<h2>3)Gives bloggers.....:To give customers a peek into its operation.</h2>

<h2>4)Asks customers to determine their. .....;To allow customers to be part of the product development. </h2>

8 0
3 years ago
Other questions:
  • Using the merge method of the Map interface, which statement correctly updates the salesTotalByDept map of type Map to update th
    7·1 answer
  • Please help with attached file
    8·2 answers
  • Which software is primarily used to create
    15·2 answers
  • Java-Script Concept quiz:
    6·1 answer
  • What are Manuscript signs​
    8·1 answer
  • A mysql prompt has been opened for you. Using the college database, complete the following tasks (use either a single-line or a
    7·1 answer
  • Read each of the following statements about Computer Science and explain why you think that statement is true.
    9·1 answer
  • What does the Finder do?
    5·1 answer
  • How many 2/8 pound patties can she make from 7/8 of a pound of hamburger
    10·1 answer
  • ____ the most popular word processing applications software<br><br>​
    12·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!