librfn
An ad-hoc utility library
|
A singly linked list with fast head/tail insertion and sorted insert support. More...
Data Structures | |
struct | list_node |
struct | list_t |
struct | list_iterator_t |
Macros | |
#define | LIST_NODE_VAR_INIT { 0 } |
#define | LIST_VAR_INIT { 0 } |
Typedefs | |
typedef struct list_node | list_node_t |
typedef int | list_node_compare_t(list_node_t *, list_node_t *) |
Functions | |
void | list_insert (list_t *list, list_node_t *node) |
void | list_insert_sorted (list_t *list, list_node_t *node, list_node_compare_t *nodecmp) |
void | list_push (list_t *list, list_node_t *node) |
list_node_t * | list_extract (list_t *list) |
list_node_t * | list_iterate (list_t *list, list_iterator_t *iter) |
list_node_t * | list_iterator_next (list_iterator_t *iter) |
void | list_iterator_insert (list_iterator_t *iter, list_node_t *node) |
list_node_t * | list_iterator_remove (list_iterator_t *iter) |
bool | list_contains (list_t *list, list_node_t *node, list_iterator_t *iter) |
bool | list_remove (list_t *list, list_node_t *node) |
A singly linked list with fast head/tail insertion and sorted insert support.
No form of internal locking or other thread-safety is provided.
typedef int list_node_compare_t(list_node_t *, list_node_t *) |
typedef struct list_node list_node_t |
bool list_contains | ( | list_t * | list, |
list_node_t * | node, | ||
list_iterator_t * | iter | ||
) |
list_node_t* list_extract | ( | list_t * | list | ) |
void list_insert | ( | list_t * | list, |
list_node_t * | node | ||
) |
void list_insert_sorted | ( | list_t * | list, |
list_node_t * | node, | ||
list_node_compare_t * | nodecmp | ||
) |
list_node_t* list_iterate | ( | list_t * | list, |
list_iterator_t * | iter | ||
) |
void list_iterator_insert | ( | list_iterator_t * | iter, |
list_node_t * | node | ||
) |
list_node_t* list_iterator_next | ( | list_iterator_t * | iter | ) |
list_node_t* list_iterator_remove | ( | list_iterator_t * | iter | ) |
void list_push | ( | list_t * | list, |
list_node_t * | node | ||
) |
bool list_remove | ( | list_t * | list, |
list_node_t * | node | ||
) |