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_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_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