Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
The library you create when you are done with Learn C The Hard Way
branch: master


This is the library that you finally create in my book Learn C The Hard Way found at:


  • Make tst_traverse abort if too deep.
  • Add the RadixMap_sort_tail from Mongrel2 to study as an exercise.
  • Look up whatever tail recursion is available in GCC or others.

Algorithms Needed

  • binary search -- got in sarray.c and radixmap.c
  • qsort -- used in sarray.c but maybe implement?
  • heap -- don't have, could add
  • radix sort -- have that, and in radixmap
  • jenkin's hash -- need another one, djb's maybe?
  • boyer-moore-horspool search -- bstrlib.c doesn't use this, so show how to make one
  • longest common subsequence -- tst vs. sarray
  • all common prefixes -- tst vs. sarray
  • all substrings -- tst vs. sarray
  • async file client/server -- ringbuffer, queue
  • non-linear suffix tree delta -- that was cool, figure it out again
  • RC4 is actually cooler and fits the student at that stage
  • timsort maybe? -- no too complicated
  • merge sort on double-linked-lists is a good algorithm.
Something went wrong with that request. Please try again.