diff options
Diffstat (limited to 'include/hash_table.h')
-rw-r--r-- | include/hash_table.h | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/include/hash_table.h b/include/hash_table.h index 16d8fe9..357e38a 100644 --- a/include/hash_table.h +++ b/include/hash_table.h @@ -1,14 +1,43 @@ #ifndef HASH_TABLE_H #define HASH_TABLE_H +#include <array.h> + +#define DEFAULT_HT_SIZE 500 + +typedef struct PAIR_STRUCT { + char *key; + void *v; +} pair_t; + typedef struct NODE_STRUCT { - + char *key; + void *v; + struct NODE_STRUCT *next; } node_t; typedef struct { - + node_t *head; + node_t *tail; } sll_t; typedef struct { - + sll_t **buckets; + size_t size; } ht_t; + +node_t *init_node(char *key, void *v); + +void sll_push(sll_t *sll, char *key, void *v); + +void sll_delete(sll_t *sll, char *key); + +sll_t *sll_free(void *x, void (*freefunc)(void *)); + +void ht_insert(ht_t *ht, char *key, void *value); + +void ht_delete(ht_t *ht, char *key); + +void *ht_get(ht_t *ht, char *key); + +ht_t *init_ht(size_t size); #endif |