C Generic Linked List Implementation