aboutsummaryrefslogtreecommitdiff
path: root/list-tail-node.c
diff options
context:
space:
mode:
Diffstat (limited to 'list-tail-node.c')
-rw-r--r--list-tail-node.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/list-tail-node.c b/list-tail-node.c
index 158fae8..4e40912 100644
--- a/list-tail-node.c
+++ b/list-tail-node.c
@@ -6,6 +6,7 @@
6/* Project */ 6/* Project */
7#include "util.h" 7#include "util.h"
8 8
9/* --8<-- list_tail_type */
9typedef int T; 10typedef int T;
10 11
11struct list_node { 12struct list_node {
@@ -16,13 +17,17 @@ struct list_node {
16struct list { 17struct list {
17 struct list_node *head, *tail; 18 struct list_node *head, *tail;
18}; 19};
20/* -->8-- */
19 21
22/* --8<-- list_tail_init */
20void 23void
21list_init(struct list *list) 24list_init(struct list *list)
22{ 25{
23 list->head = NULL; 26 list->head = NULL;
24} 27}
28/* -->8-- */
25 29
30/* --8<-- list_tail_create_node */
26static struct list_node * 31static struct list_node *
27create_node(struct list_node *next, T data) 32create_node(struct list_node *next, T data)
28{ 33{
@@ -34,7 +39,9 @@ create_node(struct list_node *next, T data)
34 } 39 }
35 return node; 40 return node;
36} 41}
42/* -->8-- */
37 43
44/* --8<-- list_tail_push_back */
38void 45void
39list_push_back(struct list *list, T data) 46list_push_back(struct list *list, T data)
40{ 47{
@@ -53,7 +60,9 @@ list_push_back(struct list *list, T data)
53 ERROR("out of memory"); 60 ERROR("out of memory");
54 } 61 }
55} 62}
63/* -->8-- */
56 64
65/* --8<-- list_tail_front */
57void 66void
58list_push_front(struct list *list, T data) 67list_push_front(struct list *list, T data)
59{ 68{
@@ -69,7 +78,9 @@ list_push_front(struct list *list, T data)
69 ERROR("out of memory"); 78 ERROR("out of memory");
70 } 79 }
71} 80}
81/* -->8-- */
72 82
83/* --8<-- list_tail_pop_front */
73bool 84bool
74list_pop_front(struct list *list, T *data) 85list_pop_front(struct list *list, T *data)
75{ 86{
@@ -88,7 +99,9 @@ list_pop_front(struct list *list, T *data)
88 return false; 99 return false;
89 } 100 }
90} 101}
102/* -->8-- */
91 103
104/* --8<-- list_tail_insert_next */
92void 105void
93list_insert_next(struct list *list, struct list_node *node, T data) 106list_insert_next(struct list *list, struct list_node *node, T data)
94{ 107{
@@ -109,7 +122,9 @@ list_insert_next(struct list *list, struct list_node *node, T data)
109 } 122 }
110 } 123 }
111} 124}
125/* -->8-- */
112 126
127/* --8<-- list_tail_delete_next */
113void 128void
114list_delete_next(struct list *list, struct list_node *node, T *data) 129list_delete_next(struct list *list, struct list_node *node, T *data)
115{ 130{
@@ -132,13 +147,17 @@ list_delete_next(struct list *list, struct list_node *node, T *data)
132 } 147 }
133 } 148 }
134} 149}
150/* -->8-- */
135 151
152/* --8<-- list_tail_empty */
136bool 153bool
137list_empty(struct list *list) 154list_empty(struct list *list)
138{ 155{
139 return list->head == NULL; 156 return list->head == NULL;
140} 157}
158/* -->8-- */
141 159
160/* --8<-- list_tail_free */
142void 161void
143list_free(struct list *list) 162list_free(struct list *list)
144{ 163{
@@ -149,6 +168,7 @@ list_free(struct list *list)
149 free(item); 168 free(item);
150 } 169 }
151} 170}
171/* -->8-- */
152 172
153int 173int
154main() 174main()