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
WILL MARK BRAIN LIST!
Tcecarenko [31]

Answer:

try D not sure

Explanation:

sorry if wrong happy if right!!!!!!

6 0
3 years ago
Read 2 more answers
And what way do you mixed and market economy support the ideals of democracy​
PolarNik [594]
Mixed and market economies protect individuals' ability to make their own economic decisions.
5 0
3 years ago
Explain in detail what this code does, Whats the flow in it, and whats the risk that its creating and what can i do to fix it? (
kodGreya [7K]

Answer:

The buffer has room for 499 characters (you always have to reserve 1 for the terminating \0 character).

The code copies all characters passed in the commandline (argv[1]) into this buffer without checking. If there are more than 499 characters supplied, these will be copied into a memory location that is not intended for it. This will probably cause your program to crash, but if the extra data is somehow executed by the processor as if it were a program, this could be a way to sneak a virus into your computer.

So, while copying data, it is important to always limit the maximum amount to the allocated space.

5 0
3 years ago
Which of the following would an A/V technician NOT typically do? (Select all that apply).
nydimaria [60]
Where is the options?
7 0
3 years ago
AD and BC are equal perpendiculars to a line segment AB (see figure). Show that CD
Simora [160]
Show the picture to answer the question
7 0
3 years ago
Other questions:
  • One of the difficult decisions a systems analyst has to make when it comes to software is whether to recommend making, buying, o
    8·1 answer
  • Why students might want headsets for their computers?
    11·1 answer
  • Shortcuts will help you complete spreadsheet tasks more efficiently.
    12·1 answer
  • Using the mouse to move or copy cells is called ____.
    15·1 answer
  • You asked your colleague to provide feedback on a blog post you recently wrote. When they sent you their feedback, they made edi
    10·1 answer
  • Write a program that uses for loops to perform the following steps: Prompt the user to input two integers: firstNum and secondNu
    15·1 answer
  • The fraction 460/7 is closest to which of the following whole numbers?
    11·1 answer
  • Ted knows that macros can be helpful to him in his work with Excel spreadsheets,but he also knows they have their hazards,so he
    15·1 answer
  • A central issue of public sharing is:
    13·2 answers
  • What kind of goal does ariel set when he works to graduate from high school in four years? short term long term normative fantas
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!