typedef struct _List { /* first node in list */ ListNode * firstNode; /* last node in list */ ListNode * lastNode; /* function used to free data stored in nodes of the list */ ListFreeDataFunc * freeDataFunc; /* number of nodes */ long numberOfNodes; /* array for searching when list is sorted */ ListNode ** nodesArray; /* sorted */ int sorted; /* weather to strdup() key's on insertion */ int strdupKeys; } List;