From 6fb072f62c2f50118dd5cb377d10c76ece51e5fb Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sun, 4 Oct 2020 14:36:07 +0200 Subject: Setze srcut-Marker... --- deque.c | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'deque.c') diff --git a/deque.c b/deque.c index 93cbe92..eec6f42 100644 --- a/deque.c +++ b/deque.c @@ -5,11 +5,12 @@ #include "util.h" -typedef int T; - #define START_MAP_CAPACITY 4 #define CHUNK_CAPACITY 17 +/* --8<-- deque_type */ +typedef int T; + struct deque { T **map; @@ -20,7 +21,9 @@ struct deque { size_t offset; size_t size; }; +/* -->8-- */ +/* --8<-- deque_allocate */ static void * allocate(size_t n, size_t sz) { @@ -30,7 +33,9 @@ allocate(size_t n, size_t sz) } return ptr; } +/* -->8-- */ +/* --8<-- deque_init */ void deque_init(struct deque *d) { @@ -51,7 +56,9 @@ deque_init(struct deque *d) } } } +/* -->8-- */ +/* --8<-- deque_free */ void deque_free(struct deque *d) { @@ -66,7 +73,9 @@ deque_free(struct deque *d) free(d->map); d->map = NULL; } +/* -->8-- */ +/* --8<-- deque_size */ size_t deque_size(struct deque *d) { @@ -74,7 +83,9 @@ deque_size(struct deque *d) return d->size; } +/* -->8-- */ +/* --8<-- deque_is_empty */ bool deque_is_empty(struct deque *d) { @@ -82,7 +93,9 @@ deque_is_empty(struct deque *d) return d->map_begin == d->map_end; } +/* -->8-- */ +/* --8<-- deque_grow_map */ static void grow_map(struct deque *d) { @@ -116,7 +129,9 @@ grow_map(struct deque *d) // set new map_capacity d->map_capacity = capacity; } +/* -->8-- */ +/* --8<-- deque_map_append_chunk */ static void map_append_chunk(struct deque *d) { @@ -133,7 +148,9 @@ map_append_chunk(struct deque *d) d->map[d->map_end] = allocate(CHUNK_CAPACITY, sizeof **d->map); d->map_end = next; } +/* -->8-- */ +/* --8<-- deque_map_prepend_chunk */ static void map_prepend_chunk(struct deque *d) { @@ -150,7 +167,9 @@ map_prepend_chunk(struct deque *d) d->map[prev] = allocate(CHUNK_CAPACITY, sizeof **d->map); d->map_begin = prev; } +/* -->8-- */ +/* --8<-- deque_map_remove_front_chunk */ static void map_remove_front_chunk(struct deque *d) { @@ -167,7 +186,9 @@ map_remove_front_chunk(struct deque *d) d->map_begin = next; } +/* -->8-- */ +/* --8<-- deque_remove_tail_chunk */ static void map_remove_tail_chunk(struct deque *d) { @@ -184,7 +205,9 @@ map_remove_tail_chunk(struct deque *d) d->map_end = prev; } +/* -->8-- */ +/* --8<-- deque_get_at */ bool deque_get_at(struct deque *d, size_t idx, T *data) { @@ -204,7 +227,9 @@ deque_get_at(struct deque *d, size_t idx, T *data) return true; } +/* -->8-- */ +/* --8<-- deque_set_at */ bool deque_set_at(struct deque *d, size_t idx, T data) { @@ -223,7 +248,9 @@ deque_set_at(struct deque *d, size_t idx, T data) return true; } +/* -->8-- */ +/* --8<-- deque_push_back */ void deque_push_back(struct deque *d, T data) { @@ -241,7 +268,9 @@ deque_push_back(struct deque *d, T data) d->map[chunk_num][chunk_off] = data; ++d->size; } +/* -->8-- */ +/* --8<-- deque_push_front */ void deque_push_front(struct deque *d, T data) { @@ -259,7 +288,9 @@ deque_push_front(struct deque *d, T data) d->map[chunk_num][d->offset] = data; ++d->size; } +/* -->8-- */ +/* --8<-- deque_pop_back */ bool deque_pop_back(struct deque *d, T *data) { @@ -284,7 +315,9 @@ deque_pop_back(struct deque *d, T *data) return true; } +/* -->8-- */ +/* --8<-- deque_pop_front */ bool deque_pop_front(struct deque *d, T *data) { @@ -310,6 +343,7 @@ deque_pop_front(struct deque *d, T *data) return true; } +/* -->8-- */ static void deque_show(struct deque *d) -- cgit v1.3