#ifndef LINKED_LIST_H
#define LINKED_LIST_H
typedef struct list_node list_node_t;
typedef struct linked_list linked_list_t;
typedef void (*free_func_t)(void *);
linked_list_t *init_linked_list(void);
void free_linked_list(linked_list_t *, free_func_t freer);
void *list_pop_front(linked_list_t *list);
void list_push_back(linked_list_t *, void *value);
typedef int (*compare_func_t)(void *, void *);
void list_sort(linked_list_t *, compare_func_t cmp);
// List traversal functions
list_node_t *list_head(const linked_list_t *);
list_node_t *node_next(const list_node_t *);
void *node_value(const list_node_t *);
#endif
-
Josh Hejna authored2dde53a6