A linked list implementation in c