diff options
Diffstat (limited to 'list-tail-node.c')
| -rw-r--r-- | list-tail-node.c | 20 |
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 */ | ||
| 9 | typedef int T; | 10 | typedef int T; |
| 10 | 11 | ||
| 11 | struct list_node { | 12 | struct list_node { |
| @@ -16,13 +17,17 @@ struct list_node { | |||
| 16 | struct list { | 17 | struct list { |
| 17 | struct list_node *head, *tail; | 18 | struct list_node *head, *tail; |
| 18 | }; | 19 | }; |
| 20 | /* -->8-- */ | ||
| 19 | 21 | ||
| 22 | /* --8<-- list_tail_init */ | ||
| 20 | void | 23 | void |
| 21 | list_init(struct list *list) | 24 | list_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 */ | ||
| 26 | static struct list_node * | 31 | static struct list_node * |
| 27 | create_node(struct list_node *next, T data) | 32 | create_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 */ | ||
| 38 | void | 45 | void |
| 39 | list_push_back(struct list *list, T data) | 46 | list_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 */ | ||
| 57 | void | 66 | void |
| 58 | list_push_front(struct list *list, T data) | 67 | list_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 */ | ||
| 73 | bool | 84 | bool |
| 74 | list_pop_front(struct list *list, T *data) | 85 | list_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 */ | ||
| 92 | void | 105 | void |
| 93 | list_insert_next(struct list *list, struct list_node *node, T data) | 106 | list_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 */ | ||
| 113 | void | 128 | void |
| 114 | list_delete_next(struct list *list, struct list_node *node, T *data) | 129 | list_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 */ | ||
| 136 | bool | 153 | bool |
| 137 | list_empty(struct list *list) | 154 | list_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 */ | ||
| 142 | void | 161 | void |
| 143 | list_free(struct list *list) | 162 | list_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 | ||
| 153 | int | 173 | int |
| 154 | main() | 174 | main() |
