Fundamental algorithms and data structures in C