Skip to content
An experimental C library of common data structures and algorithms
Branch: master
Clone or download
Latest commit c17a4ab Aug 23, 2015

C Algorithm Library Build Status

C algorithms is, as the name implies, a collection of common data structures and algorithms implemented in C99.


Every now and then I find myself preparing for technical interviews which often require at least some basic understanding of common data structures and algorithms. These questions are supposed to assess a candidates' technical background and ability to think on her feet. In real life, however, you should definitely avoid re-inventing the wheel and use well-established, peer reviewed libraries, like Boost for C++.

Why Header-Only? Why not Header-Only?

The first version of the library was implemented as header only.

There are trade-offs between shipping a library in a header-only format and using separate files for the API and implementation. The header-only approach, though not very efficient when building large projects, has one big advantage; the library does not need to be separately compiled and you only have to #include the relevant header file in your source code.

However, I eventually settled down to use separate .h and .c files for API and implementation because it think it is more intuitive in terms of code structure.


I have used the GoogleTest (gtest) framework. This has bloated the repository a lot and might be an overkill for this small project but I wanted to give it a try nevertheless. In order to run the tests simply execute make test


This is an educational and experimental piece of code. Needless to say, never use a random toy algorithm implementation like this in any production setting.



You can’t perform that action at this time.