|
liba 0.1.15
An algorithm library based on C/C++
|
circular doubly linked list implementation More...
#include "a.h"Go to the source code of this file.
Data Structures | |
| struct | a_list |
| instance structure for circular doubly linked list More... | |
Macros | |
| #define | A_LIST_INIT(node) |
| #define | a_list_(_, x) |
| cast a list pointer from another type pointer | |
| #define | a_list_entry(ptr, type, member) |
| access the struct for this entry | |
| #define | a_list_entry_next(ptr, type, member) |
| #define | a_list_entry_prev(ptr, type, member) |
| #define | a_list_foreach_(it, ctx, next) |
| iterate over a list | |
| #define | A_LIST_FOREACH_(it, ctx, next) |
| #define | a_list_foreach_next(it, ctx) |
| #define | a_list_foreach_prev(it, ctx) |
| #define | A_LIST_FOREACH_NEXT(it, ctx) |
| #define | A_LIST_FOREACH_PREV(it, ctx) |
| #define | a_list_forsafe_(it, at, ctx, next) |
| iterate over a list safe against removal of list entry | |
| #define | A_LIST_FORSAFE_(it, at, ctx, next) |
| #define | a_list_forsafe_next(it, at, ctx) |
| #define | a_list_forsafe_prev(it, at, ctx) |
| #define | A_LIST_FORSAFE_NEXT(it, at, ctx) |
| #define | A_LIST_FORSAFE_PREV(it, at, ctx) |
Typedefs | |
| typedef struct a_list | a_list |
| instance structure for circular doubly linked list | |
Functions | |
| void | a_list_ctor (a_list *ctx) |
| constructor for circular doubly linked list | |
| void | a_list_init (a_list *ctx) |
| initialize for circular doubly linked list | |
| void | a_list_dtor (a_list *ctx) |
| destructor for circular doubly linked list | |
| void | a_list_link (a_list *head, a_list *tail) |
| link head node and tail node | |
| void | a_list_loop (a_list *head, a_list *tail) |
| loop head node to tail node | |
| void | a_list_add_ (a_list *head1, a_list *tail1, a_list *head2, a_list *tail2) |
| connect list1 and list2 | |
| void | a_list_add_node (a_list *head, a_list *tail, a_list *node) |
| insert a node to a list | |
| void | a_list_add_next (a_list *ctx, a_list *node) |
| append a node to a list forward | |
| void | a_list_add_prev (a_list *ctx, a_list *node) |
| append a node to a list backward | |
| void | a_list_del_ (a_list const *head, a_list const *tail) |
| delete a section of a list | |
| void | a_list_del_node (a_list const *node) |
| delete a node from a list | |
| void | a_list_del_next (a_list const *node) |
| remove a node from a list forward | |
| void | a_list_del_prev (a_list const *node) |
| remove a node from a list backward | |
| void | a_list_set_ (a_list const *head1, a_list const *tail1, a_list *head2, a_list *tail2) |
| modify a section of a list | |
| void | a_list_set_node (a_list const *ctx, a_list *rhs) |
| modify a node of a list | |
| void | a_list_mov_next (a_list *ctx, a_list const *rhs) |
| moving a list from another list forward | |
| void | a_list_mov_prev (a_list *ctx, a_list const *rhs) |
| moving a list from another list backward | |
| void | a_list_rot_next (a_list *ctx) |
| rotate a node in the list backward | |
| void | a_list_rot_prev (a_list *ctx) |
| rotate a node in the list forward | |
| void | a_list_swap_ (a_list *head1, a_list *tail1, a_list *head2, a_list *tail2) |
| swap a section of one list and a section of another list | |
| void | a_list_swap_node (a_list *lhs, a_list *rhs) |
| swap the node lhs and the node rhs | |
circular doubly linked list implementation