#include <stdlib.h>
#include <stdio.h>
-#define LOADFACTOR 0.75
-#define HASH_SIZE 100
+#define CLOADFACTOR 0.25
+#define CHASH_SIZE 1024
typedef struct chashlistnode {
unsigned int key;
} chashlistnode_t;
typedef struct chashtable {
- chashlistnode_t *table; // points to beginning of hash table
- unsigned int size;
- unsigned int numelements;
- float loadfactor;
+ chashlistnode_t *table; // points to beginning of hash table
+ unsigned int size;
+ unsigned int mask;
+ unsigned int numelements;
+ float loadfactor;
} chashtable_t;
/* Prototypes for hash*/
chashtable_t *chashCreate(unsigned int size, float loadfactor);
-unsigned int chashFunction(chashtable_t *table, unsigned int key);
+static unsigned int chashFunction(chashtable_t *table, unsigned int key);
unsigned int chashInsert(chashtable_t *table, unsigned int key, void *val);
void *chashSearch(chashtable_t *table, unsigned int key); //returns val, NULL if not found
unsigned int chashRemove(chashtable_t *table, unsigned int key); //returns -1 if not found