Robot Agent  1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
doublylinkedlist.h
Go to the documentation of this file.
1 
11 #ifndef __DOUBLYLINKEDLIST_H
12 #define __DOUBLYLINKEDLIST_H
13 
14 /* -- Includes -- */
15 
16 /* -- Enumurations -- */
17 
18 /* -- Types -- */
19 
24 {
25  void *data;
26  int data_type;
29 
31 
36 {
37  doublylinkedlist_node_t *first; // Pointer to the first node of the doubly linked list
38  doublylinkedlist_node_t *last; // Pointer to the last node of the doubly linked list
39 
40  int count; // Number of nodes in the doubly linked list
41 
43 
44 /* -- Constants -- */
45 
46 /* -- Function Prototypes -- */
47 
48 doublylinkedlist_t *doublylinkedlist_init(void); // Initialize doubly linked list
49 void doublylinkedlist_destroy(doublylinkedlist_t *dlls); // Deinitialize doubly linked list
50 
51 void doublylinkedlist_insert_after(doublylinkedlist_t *dlls, doublylinkedlist_node_t *node, void *data, int data_type); // Add a new node after specified node
52 void doublylinkedlist_insert_before(doublylinkedlist_t *dlls, doublylinkedlist_node_t *node, void *data, int data_type); // Add a new node before specified node
53 
54 void doublylinkedlist_insert_beginning(doublylinkedlist_t *dlls, void *data, int data_type); // Add a new node in the beginning of the doubly linked list
55 void doublylinkedlist_insert_end(doublylinkedlist_t *dlls, void *data, int data_type); // Add a new node in the end of the doubly linked list
56 
57 void doublylinkedlist_remove(doublylinkedlist_t *dlls, doublylinkedlist_node_t *node, void *data, int *data_type); // Remove a node and retrieve the data from the doubly linked list structure
58 void doublylinkedlist_delete(doublylinkedlist_t *dlls, doublylinkedlist_node_t *node); // Delete a node from the doubly linked list structure
59 
60 void doublylinkedlist_empty(doublylinkedlist_t *dlls); // Empty the doubly linked list
61 
62 #endif /* __DOUBLYLINKEDLIST_H */
doublylinkedlist_node_t * last
void doublylinkedlist_destroy(doublylinkedlist_t *dlls)
struct s_DOUBLYLINKEDLIST_NODE_STRUCT * prev
doublylinkedlist_node_t * first
struct s_DOUBLYLINKEDLIST_STRUCT doublylinkedlist_t
Doubly linked list structure.
doublylinkedlist_t * doublylinkedlist_init(void)
void doublylinkedlist_insert_after(doublylinkedlist_t *dlls, doublylinkedlist_node_t *node, void *data, int data_type)
void doublylinkedlist_insert_before(doublylinkedlist_t *dlls, doublylinkedlist_node_t *node, void *data, int data_type)
struct s_DOUBLYLINKEDLIST_NODE_STRUCT * next
Doubly linked list node structure.
struct s_DOUBLYLINKEDLIST_NODE_STRUCT doublylinkedlist_node_t
Doubly linked list node structure.
void doublylinkedlist_delete(doublylinkedlist_t *dlls, doublylinkedlist_node_t *node)
Doubly linked list structure.
void doublylinkedlist_insert_beginning(doublylinkedlist_t *dlls, void *data, int data_type)
void doublylinkedlist_insert_end(doublylinkedlist_t *dlls, void *data, int data_type)
void doublylinkedlist_empty(doublylinkedlist_t *dlls)
void doublylinkedlist_remove(doublylinkedlist_t *dlls, doublylinkedlist_node_t *node, void *data, int *data_type)