From cd70ca266bb212d6a32d2dd808c7708bb7be6f1f Mon Sep 17 00:00:00 2001 From: Danny van Kooten Date: Thu, 12 Mar 2020 09:30:29 +0100 Subject: move files to src/ subdir --- hashmap.c | 74 --------------------------------------------------------------- 1 file changed, 74 deletions(-) delete mode 100644 hashmap.c (limited to 'hashmap.c') diff --git a/hashmap.c b/hashmap.c deleted file mode 100644 index 3d9edd0..0000000 --- a/hashmap.c +++ /dev/null @@ -1,74 +0,0 @@ -#include -#include -#include -#include "hashmap.h" - -struct node { - char *key; - void *value; - struct node *next; -}; - -struct hashmap *hashmap_new() { - struct hashmap *hm = malloc(sizeof *hm); - if (!hm) err(EXIT_FAILURE, "out of memory"); - for (int i=0; i < 26; i++) { - hm->buckets[i] = NULL; - } - - return hm; -} - -void hashmap_insert(struct hashmap *hm, char *key, void *value) { - int pos = (key[0] - 'a') % 26; - struct node *head = hm->buckets[pos]; - struct node *node = head; - - while (node) { - if (strcmp(node->key, key) == 0) { - node->value = value; - return; - } - node = node->next; - } - - node = malloc(sizeof *node); - node->key = key; - node->value = value; - node->next = head; - hm->buckets[pos] = node; -} - -void *hashmap_get(struct hashmap *hm, char *key) { - int pos = (key[0] - 'a') % 26; - struct node *node = hm->buckets[pos]; - while (node) { - if (strcmp(node->key, key) == 0) { - return node->value; - } - - node = node->next; - } - - return NULL; -} - -void hashmap_remove(char *key) { - -} - -void hashmap_free(struct hashmap *hm) { - struct node *node; - struct node *next; - - for (int i=0; i < 26; i++) { - node = hm->buckets[i]; - while (node) { - next = node->next; - free(node); - node = next; - } - } - - free(hm); -} \ No newline at end of file -- cgit v1.2.3