|
Embedded SDK
Embedded SDK
|
Generic linked list implementation. More...

Go to the source code of this file.
Functions | |
| bool | flist_push_front (flist_node_t **list, flist_node_t *node) |
| Add a node at the beginning of the forward list. | |
| bool | flist_pop_front (flist_node_t **list, f_list_node_del del_func) |
| Remove and delete the first node from the forward list. | |
| bool | flist_push_back (flist_node_t **list, flist_node_t *node) |
| Add a node at the end of the forward list. | |
| bool | flist_pop_back (flist_node_t **list, f_list_node_del del_func) |
| Remove and delete the last node from the forward list. | |
| bool | flist_insert_after (flist_node_t **list, flist_node_t *ref, flist_node_t *node) |
| Insert a node after a reference node in the forward list. | |
| bool | flist_remove (flist_node_t **list, flist_node_t *node, f_list_node_del del_func) |
| Remove and delete a specific node from the forward list. | |
| size_t | flist_remove_if (flist_node_t **list, f_list_node_pred pred_func, f_list_node_del del_func) |
| Remove all nodes matching a predicate from the forward list. | |
| bool | flist_clear (flist_node_t **list, f_list_node_del del_func) |
| Remove and delete all nodes from the forward list. | |
| size_t | flist_size (flist_node_t *const *list) |
| Get the number of nodes in the forward list. | |
| bool | flist_empty (flist_node_t *const *list) |
| Check if the forward list is empty. | |
| bool | flist_sort (flist_node_t **list, f_list_node_cmp cmp_func) |
| Sort the forward list using a comparison function. | |
| size_t | flist_unique (flist_node_t **list, f_list_node_bin_pred pred_func, f_list_node_del del_func) |
| Remove consecutive duplicate nodes from the forward list. | |
| bool | flist_reverse (flist_node_t **list) |
| Reverse the order of nodes in the forward list. | |
| bool | list_push_front (list_node_t **list, list_node_t *node) |
| Add a node at the beginning of the doubly-linked list. | |
| bool | list_pop_front (list_node_t **list, f_list_node_del del_func) |
| Remove and delete the first node from the doubly-linked list. | |
| bool | list_push_back (list_node_t **list, list_node_t *node) |
| Add a node at the end of the doubly-linked list. | |
| bool | list_pop_back (list_node_t **list, f_list_node_del del_func) |
| Remove and delete the last node from the doubly-linked list. | |
| bool | list_insert_before (list_node_t **list, list_node_t *ref, list_node_t *node) |
| Insert a node before a reference node in the doubly-linked list. | |
| bool | list_insert_after (list_node_t **list, list_node_t *ref, list_node_t *node) |
| Insert a node after a reference node in the doubly-linked list. | |
| bool | list_remove (list_node_t **list, list_node_t *node, f_list_node_del del_func) |
| Remove and delete a specific node from the doubly-linked list. | |
| size_t | list_remove_if (list_node_t **list, f_list_node_pred pred_func, f_list_node_del del_func) |
| Remove all nodes matching a predicate from the doubly-linked list. | |
| bool | list_clear (list_node_t **list, f_list_node_del del_func) |
| Remove and delete all nodes from the doubly-linked list. | |
| size_t | list_size (list_node_t *const *list) |
| Get the number of nodes in the doubly-linked list. | |
| bool | list_empty (list_node_t *const *list) |
| Check if the doubly-linked list is empty. | |
| bool | list_sort (list_node_t **list, f_list_node_cmp cmp_func) |
| Sort the doubly-linked list using a comparison function. | |
| size_t | list_unique (list_node_t **list, f_list_node_bin_pred pred_func, f_list_node_del del_func) |
| Remove consecutive duplicate nodes from the doubly-linked list. | |
| bool | list_reverse (list_node_t **list) |
| Reverse the order of nodes in the doubly-linked list. | |
Generic linked list implementation.
Provides both singly-linked (flist) and doubly-linked (list) implementations.
Definition in file lists.c.
| bool flist_clear | ( | flist_node_t ** | list, |
| f_list_node_del | del_func | ||
| ) |
| bool flist_empty | ( | flist_node_t *const * | list | ) |
| bool flist_insert_after | ( | flist_node_t ** | list, |
| flist_node_t * | ref, | ||
| flist_node_t * | node | ||
| ) |
Insert a node after a reference node in the forward list.
| [in,out] | list | Pointer to the list head |
| [in] | ref | Reference node (must be in list) |
| [in] | node | Node to insert (must have node->next == NULL) |
| bool flist_pop_back | ( | flist_node_t ** | list, |
| f_list_node_del | del_func | ||
| ) |
| bool flist_pop_front | ( | flist_node_t ** | list, |
| f_list_node_del | del_func | ||
| ) |
| bool flist_push_back | ( | flist_node_t ** | list, |
| flist_node_t * | node | ||
| ) |
| bool flist_push_front | ( | flist_node_t ** | list, |
| flist_node_t * | node | ||
| ) |
| bool flist_remove | ( | flist_node_t ** | list, |
| flist_node_t * | node, | ||
| f_list_node_del | del_func | ||
| ) |
Remove and delete a specific node from the forward list.
| [in,out] | list | Pointer to the list head |
| [in] | node | Node to remove (must be in list) |
| [in] | del_func | Function to delete the node (can be NULL) |
| size_t flist_remove_if | ( | flist_node_t ** | list, |
| f_list_node_pred | pred_func, | ||
| f_list_node_del | del_func | ||
| ) |
Remove all nodes matching a predicate from the forward list.
| [in,out] | list | Pointer to the list head |
| [in] | pred_func | Predicate function to test each node |
| [in] | del_func | Function to delete removed nodes (can be NULL) |
| bool flist_reverse | ( | flist_node_t ** | list | ) |
| size_t flist_size | ( | flist_node_t *const * | list | ) |
| bool flist_sort | ( | flist_node_t ** | list, |
| f_list_node_cmp | cmp_func | ||
| ) |
| size_t flist_unique | ( | flist_node_t ** | list, |
| f_list_node_bin_pred | pred_func, | ||
| f_list_node_del | del_func | ||
| ) |
Remove consecutive duplicate nodes from the forward list.
| [in,out] | list | Pointer to the list head |
| [in] | pred_func | Binary predicate to test equality (returns true if a == b) |
| [in] | del_func | Function to delete removed nodes (can be NULL) |
| bool list_clear | ( | list_node_t ** | list, |
| f_list_node_del | del_func | ||
| ) |
| bool list_empty | ( | list_node_t *const * | list | ) |
| bool list_insert_after | ( | list_node_t ** | list, |
| list_node_t * | ref, | ||
| list_node_t * | node | ||
| ) |
Insert a node after a reference node in the doubly-linked list.
| [in,out] | list | Pointer to the list head |
| [in] | ref | Reference node (must be in list) |
| [in] | node | Node to insert (must have node->_list.next == NULL and node->prev == NULL) |
| bool list_insert_before | ( | list_node_t ** | list, |
| list_node_t * | ref, | ||
| list_node_t * | node | ||
| ) |
Insert a node before a reference node in the doubly-linked list.
| [in,out] | list | Pointer to the list head |
| [in] | ref | Reference node (must be in list) |
| [in] | node | Node to insert (must have node->_list.next == NULL and node->prev == NULL) |
| bool list_pop_back | ( | list_node_t ** | list, |
| f_list_node_del | del_func | ||
| ) |
| bool list_pop_front | ( | list_node_t ** | list, |
| f_list_node_del | del_func | ||
| ) |
| bool list_push_back | ( | list_node_t ** | list, |
| list_node_t * | node | ||
| ) |
| bool list_push_front | ( | list_node_t ** | list, |
| list_node_t * | node | ||
| ) |
| bool list_remove | ( | list_node_t ** | list, |
| list_node_t * | node, | ||
| f_list_node_del | del_func | ||
| ) |
Remove and delete a specific node from the doubly-linked list.
| [in,out] | list | Pointer to the list head |
| [in] | node | Node to remove (must be in list) |
| [in] | del_func | Function to delete the node (can be NULL) |
| size_t list_remove_if | ( | list_node_t ** | list, |
| f_list_node_pred | pred_func, | ||
| f_list_node_del | del_func | ||
| ) |
Remove all nodes matching a predicate from the doubly-linked list.
| [in,out] | list | Pointer to the list head |
| [in] | pred_func | Predicate function to test each node |
| [in] | del_func | Function to delete removed nodes (can be NULL) |
| bool list_reverse | ( | list_node_t ** | list | ) |
| size_t list_size | ( | list_node_t *const * | list | ) |
| bool list_sort | ( | list_node_t ** | list, |
| f_list_node_cmp | cmp_func | ||
| ) |
| size_t list_unique | ( | list_node_t ** | list, |
| f_list_node_bin_pred | pred_func, | ||
| f_list_node_del | del_func | ||
| ) |
Remove consecutive duplicate nodes from the doubly-linked list.
| [in,out] | list | Pointer to the list head |
| [in] | pred_func | Binary predicate to test equality (returns true if a == b) |
| [in] | del_func | Function to delete removed nodes (can be NULL) |