While we usually take associative array/dictionary/hash data structure as granted in modern programming languages, there is no such thing builtin in a good old C. It might be tempting to use SQLite or even Berkeley DB to fullfil that urge in many project, but the extra dependency handling is a PITA.
Plus, there are many tasks that do not require ACID neither persistent storage.
Even a red-black tree could be an overkill sometimes. Then, there is a bitwise trie. One particular implementation, nedtries, caught my attention:
- It is distributed as a single header file (
- It is really fast;
- It is really tiny;
- It requires no dynamic memory allocation;
- It is both C/C++ compatible.