| libdatatypes 0.3.2
    Abstract datatypes for C. | 
Doubly-linked list. More...
Go to the source code of this file.
| Data Structures | |
| struct | ListItem | 
| Structure holding a list item.  More... | |
| struct | List | 
| Doubly-linked list.  More... | |
| Macros | |
| #define | list_item_next(item) item->next | 
| #define | list_item_prev(item) item->prev | 
| #define | list_item_get_data(item) item->data | 
| #define | list_item_set_data(item, value) item->data = value | 
| Functions | |
| List * | list_new (CompareFunc compare, FreeFunc free, Pool *pool) | 
| void | list_init (List *list, CompareFunc compare, FreeFunc free, Pool *pool) | 
| void | list_destroy (List *list) | 
| void | list_free (List *list) | 
| ListItem * | list_append (List *list, void *data) | 
| ListItem * | list_prepend (List *list, void *data) | 
| ListItem * | list_insert_sorted (List *list, void *data) | 
| ListItem * | list_head (const List *list) | 
| ListItem * | list_tail (const List *list) | 
| size_t | list_count (const List *list) | 
| bool | list_empty (const List *list) | 
| void | list_remove (List *list, ListItem *item) | 
| void | list_remove_by_data (List *list, void *data, bool remove_all) | 
| void * | list_pop (List *list) | 
| bool | list_contains (const List *list, const void *data) | 
| void | list_clear (List *list) | 
| ListItem * | list_find (const List *list, ListItem *offset, void const *data) | 
| void | list_item_free_data (const List *list, ListItem *item) | 
Doubly-linked list.
Definition in file list.h.
| struct ListItem | 
| struct List | 
| Data Fields | ||
|---|---|---|
| CompareFunc | compare | Function to compare data of two list items. | 
| size_t | count | Number of stored items. | 
| FreeFunc | free | Function to free item data. | 
| ListItem * | head | Head of the list. | 
| Pool * | pool | A memory pool for creating new list items. | 
| ListItem * | tail | Tail of the list. | 
| #define list_item_get_data | ( | item | ) | item->data | 
| #define list_item_next | ( | item | ) | item->next | 
| #define list_item_prev | ( | item | ) | item->prev | 
| #define list_item_set_data | ( | item, | |
| value | |||
| ) | item->data = value | 
| void list_clear | ( | List * | list | ) | 
| bool list_contains | ( | const List * | list, | 
| const void * | data | ||
| ) | 
| size_t list_count | ( | const List * | list | ) | 
| void list_destroy | ( | List * | list | ) | 
| bool list_empty | ( | const List * | list | ) | 
| void list_free | ( | List * | list | ) | 
| void list_init | ( | List * | list, | 
| CompareFunc | compare, | ||
| FreeFunc | free, | ||
| Pool * | pool | ||
| ) | 
| List * list_new | ( | CompareFunc | compare, | 
| FreeFunc | free, | ||
| Pool * | pool | ||
| ) | 
| void * list_pop | ( | List * | list | ) | 
| void list_remove_by_data | ( | List * | list, | 
| void * | data, | ||
| bool | remove_all | ||
| ) |