A C implementation of a linked list