Implementations of common data structures in C