This is an implementation of a basic HashMap data structure written in C. HashMaps in C are a way of storing data in key-value pairs and provide efficient insertion, deletion and retrieval operations.
- This HashMap implementation uses chaining to resolve collisions.
- Basic operations such as insertion (
insertToHashMap
), deletion (removeFromHashMap
), retrieval (getValueFromHashMap
), and freeing the used memory (freeHashMap
). - A function to create a new HashMap (
newHashMap
).
HashMap *newHashMap(int size);
void insertToHashMap(HashMap *hashmap, char *key, char *value);
char *getValueFromHashMap(HashMap *hashmap, char *key);
void freeHashMap(HashMap *hashmap);
int removeFromHashMap(HashMap *hashmap, char *key);
#include <stdio.h>
#include "hashmap.h"
int main(void) {
int size = 100;
HashMap *hashmap = newHashMap(size);
insertToHashMap(hashmap, "key1", "value1");
insertToHashMap(hashmap, "key1", "value2");
insertToHashMap(hashmap, "key2", "value1");
char *value = getValueFromHashMap(hashmap, "key1");
printf("key1: %s\n", value); // should be value2
removeFromHashMap(hashmap, "key1");
value = getValueFromHashMap(hashmap, "key1");
printf("key1: %s\n", value); // should be NULL
freeHashMap(hashmap);
return 0;
}
The HashMap implementation is contained in a single C source file. There are no external dependencies. Compile using your favorite C compiler.