blob: 6f0dc512bc69c736ce3c9efdc8e8573252a8b658 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#ifndef HASHTABLE
#define HASHTABLE
typedef struct HashPair {
char* key;
void* value;
} pair_t;
pair_t init_pair(char* key, void* value);
typedef struct HashTable {
pair_t* pairs;
int capacity;
int itemCount;
struct HashTable* parent;
} hashtable_t;
hashtable_t* init_hashtable(unsigned int capacity, hashtable_t* parent);
void destroy_hashtable(hashtable_t* hashtable);
unsigned int get_hash(char* str);
unsigned int hashtable_add_pair(hashtable_t* hashtable, pair_t pair);
unsigned int hashtable_update_pair_recurse(hashtable_t* origin, pair_t pair);
pair_t hashtable_get_pair(hashtable_t* hashtable, char* key);
pair_t hashtable_get_pair_recurse(hashtable_t* origin, char* key);
#endif
|