typedef struct node_t { struct node_t *next; struct node_t *prev; void *data; } NODE; typedef struct list_t { NODE *head; NODE *tail; int size; } LIST; NODE *NodeNew(void *data); LIST *ListNew(void); void AddFirst(LIST *list, void *data); void AddLast(LIST *list, void *data); void *RemoveFirst(LIST *list); void *RemoveLast(LIST *list); int ListSize();