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
51 lines
952 B
C++
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
|