35 lines
1.4 KiB
C++
Executable File
35 lines
1.4 KiB
C++
Executable File
#ifndef _HASHTABLE_H_
|
|
#define _HASHTABLE_H_
|
|
|
|
#include <vector>
|
|
#include <math.h>
|
|
|
|
using namespace std;
|
|
|
|
class HashTable {
|
|
public:
|
|
HashTable(int size, double threshold=0.6, int methode=2); // Konstruktor
|
|
~HashTable(); // Destruktor
|
|
int insert(int item); // fuegt ein Element der Hashtabelle hinzu
|
|
int at(int i); // Liefert das i-te Element der Hashtabelle zurueck
|
|
int getCollisionCount(); // Liefert die Anzahl der Kollisionen zurueck
|
|
int getSize(); // Liefert die Groesse der Hashtabelle zurueck
|
|
int getElements(); // Liefert die Anzahl der Elemente der Hashtabelle zurueck
|
|
void print(); // Ausgabe der Hashtable ind er Form:
|
|
// [0] -> 1
|
|
// .....
|
|
private:
|
|
int size; // Groesse der HashTable
|
|
int elements; // Anz. d. Elemente in HashTable
|
|
int collisionCount; // Anz. d. Kollisionen beim Einfuegen
|
|
double threshhold_rehashing; // Schwellwert fuers rehashing (size/elements)
|
|
int m_sondierMethode; // Sondier Methode 1 - linear, 2 - quadratisch, 3 - doppeltes Hashing
|
|
vector<int>* hashTable; // HashTable
|
|
int hashValue(int item); // calculate hash value
|
|
void rehashing(); // rehashing
|
|
};
|
|
|
|
// Helper Funktion:
|
|
int get_next_Prime(int a); // Gibt zu einer natuerlichen Zahl a, die naechstgroessere Primzahl zurueck
|
|
int get_last_Prime(int a); // Gibt zu einer natuerlichen Zahl a, die naechstkleienre Primzahl zurueck
|
|
#endif |