Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / programming / algorithm

Simple C Hashtable

4.67/5 (3 votes)
5 May 2012CPOL 34.8K   1.2K  
A simple key value-pair hashtable written in C

Introduction 

This is a simple key-value pair hashtable written in C, uses FNV-1 as default hash algorithm. 

Using the code 

You can see an extended example of how to use this hashtable in the file main.c. 

Initialization 

C++
// First, declare the hashtable
hashtable_t tbl;

// Then, call hashtable_init with the hash function and the len function
// In this example we will use strings as key
hashtable_init(&tbl, hashtable_hash_fnv, (hashtable_len_function)strlen); 

Adding elements 

C++
// The key and the value can be of any type(int, string, structures...)
hashtable_set(&tbl, "key", "value"); 

Removing elements 

C++
hashtable_remove(&tbl, "key"); 

Clearing the table 

C++
 hashtable_clear(&tbl); 

Finally, destroy the table(actually, this just call hashtable_clear

C++
 hashtable_destroy(&tbl);  

Points of Interest 

This hashtable favors neither search neither insertion. If you want a search favored hashtable you must sort the elements. 

History 

05/05/2012 - First version. 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)