Awesome Open Source
Awesome Open Source


Build Status

libdict is a C library that provides the following data structures with efficient insert, lookup, and delete routines:

All data structures in this library support insert, search, and remove, and have bidirectional iterators. The sorted data structures (everything but hash tables) support near-search operations: searching for the key greater or equal to, strictly greater than, lesser or equal to, or strictly less than, a given key. The tree data structures also support the selecting the nth element; this takes linear time, except in path-reduction and weight-balanced trees, where it only takes logarithmic time.

The API and code are written with efficiency as a primary concern. For example, an insert call returns a boolean indicating whether or not the key was already present in the dictionary (i.e. whether there was an insertion or a collision), and a pointer to the location of the associated data. Thus, an insert-or-update operation can be supported with a single traversal of the data structure. In addition, almost all recursive algorithms have been rewritten to use iteration instead.


libdict is released under the simplified BSD license.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
c (14,764
data-structures (375
map (227
tree (179
dictionary (103
key-value (83
hashing (59
iterator (22
hashtable (20
avl-tree (15

Find Open Source By Browsing 7,000 Topics Across 59 Categories