#ifndef _LL_H #define _LL_H typedef struct base_node { struct base_node *next ; // no data!! } base_node ; typedef void (* print_ftype) (void *) ; // Returns pointer to new linked list's dummy header. base_node *LL_New() ; // Inserts new node with data at beginning of linked list. void LL_Insert(base_node *header, void *n) ; // returns pointer to first item in the list. void *LL_First(base_node *header) ; // remove and return first node in linked list void *LL_Extract(base_node *header) ; // Delete first node of linked list void LL_Delete(base_node *header) ; // Make list into empty list void LL_Empty(base_node *header) ; // Destroy entire data structure. void LL_Destroy(base_node *header) ; // Print all nodes in linked list // void LL_Print(base_node *header, print_ftype f) ; #endif