cis22c/06-hash-tables/HashNode.h
Iurii Tatishchev 3d112946f5
9.12 Lab: Hashing - Linear Probe (insert, search)
Hash Function: Add the ASCII values of all characters in the key string and return the reminder obtained when divided by the size of the table.

Example: If key = "Bob", and size = 53, we get (66 + 111 + 98) % 53 => 275 % 53 => 10.

Collision Resolution Method: Linear Probe.

The assignment consists of the following classes/files:

- main.cpp (incomplete)
- Student.h (given)
- HashNode.h (given)
- HashTable.h (given)
- HashTable.cpp (incomplete)

Read and understand the given code then write two functions:

- insert hash
- search hash
2024-05-11 15:43:39 -07:00

51 lines
952 B
C++

// Specification file for the HashNode class
#ifndef _HASH_NODE
#define _HASH_NODE
#include "Student.h"
using std::string;
class HashNode {
private:
Student item;
int occupied; // 1 -> occupied, 0 -> empty
int noCollisions;
public:
// constructors
HashNode() {
occupied = 0;
noCollisions = 0;
}
HashNode(Student anItem) {
item = anItem;
occupied = 1;
noCollisions = 0;
}
HashNode(Student anItem, int ocp, int nCol) {
item = anItem;
occupied = ocp;
noCollisions = nCol;
}
// setters
void setItem(const Student &anItem) { item = anItem; }
void setOccupied(int ocp) { occupied = ocp; }
void setNoCollisions(int nCol) { noCollisions = nCol; }
// getters
Student getItem() const { return item; }
int getOccupied() const { return occupied; }
int getNoCollisions() const { return noCollisions; }
};
#endif