Category “Data structure” packages
jmi2k/disjoint.hdisjoint types (aka sum types)MIT
yrmt/arraylistdoubly linked list based on BSD TAILQMIT
clibs/hashhash library built on zhashMIT
clibs/listsimple doubly linked listMIT
clibs/red-black-treeGeneric red-black tree library (by Julienne Walker).MIT
thlorenz/sync-stream.csynchronous stream implementationMIT
troydhanson/uthashC macros for hash tables and moreUnlicensed
willemt/cbuffercircular bufferBSD
willemt/bipbuffercircular buffer alternativeBSD
willemt/heapheap priority queueBSD
willemt/pseudolrupseudo least recently used cacheBSD
willemt/bagdata structure which only has put and randomised take operationsBSD
willemt/bitfieldeasily get and set bits in a bitfieldBSD
willemt/array-avl-treeself balancing treeBSD
willemt/linked-list-hashmaphashmap that uses linked lists for managing collisionsBSD
willemt/quadratic-probing-hashmaphashmap that uses quadratic probing (open addressing) for managing collisionsBSD
rxi/vecdynamic arrayMIT
jlcordeiro/cmapmap with string keysMIT
willemt/skiplistDictionary implemented through a skiplistBSD
willemt/linked-list-queueQueue using a linked listBSD
willemt/meanqueueAn integer queue that calculates mean in O(1)BSD
willemt/chunkybarData structure that efficiently represents multi-piece progress barsBSD
willemt/farraylistAn arraylist that doesn't shift items so you can have "holes" between slotsBSD
mbucc/cqueueOpenBSD's queue(3): linked lists and queues.ISC and BSD
clibs/lmdbSymas Lightning Memory-Mapped Database (LMDB)The OpenLDAP Public License
willemt/arrayqueueQueue implemented using an arrayBSD
ajaymt/dict.cSimple dictionary implemented through a linked listMIT
ajaymt/list.cSimple linked listMIT
skeeto/lstackA lock-free stack using C11's new stdatomic.h featuresUnlicense
clehner/ll.cTransparent linked listsLGPL-3.0+
kellydunn/libkldPersonal implementations of common datastructures. (List, Vector, Graph, Matrix, Tree, etc)Unlicensed
willemt/duraqueueQueue built to be durable under failureBSD
gioyik/mapcC lib for mappingMIT
neylsongularte/simple-linked-list-cLinked list implementationUnlicensed
htmk/fat-arrayDynamic arbitrary typed array using fat pointers and macros.MIT
laserswald/dlistType safe double linked list in the style of BSD's queue.hUnlicensed
catb0t/sparseSparse arrays implemented by run-length-encoding regions of zeroesGPL v3
arablocks/flat-tree.cA series of functions to map a binary tree to a list ported from flat-tree.MIT
jwerle/libmerkleA C99 library for generating Merkle trees.MIT
rikvdh/zabufferA Zero-allocation buffer handling library for low-memory applications.MIT
rikvdh/zringbufA Zero-allocation ring-buffer library for low-memory applications.MIT