diff options
author | Tucker Evans <tucker@tuckerevans.com> | 2020-07-04 23:21:11 -0400 |
---|---|---|
committer | Tucker Evans <tucker@tuckerevans.com> | 2020-07-04 23:21:11 -0400 |
commit | 0fb0ae61369464e9b2b76039eb074806c50e4474 (patch) | |
tree | 888fb173440d50ab1ee17d5d008ec71c2b5529ff /collections/double_ended_queue/double_ended_queue.h | |
parent | b0080d500557c6ebe407a714690ea03f78b99c7a (diff) | |
parent | 5626429e1de6244aa76273d1a98277d41d1d1888 (diff) |
Merge branch 'develop'v0.1.1
Diffstat (limited to 'collections/double_ended_queue/double_ended_queue.h')
-rw-r--r-- | collections/double_ended_queue/double_ended_queue.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/collections/double_ended_queue/double_ended_queue.h b/collections/double_ended_queue/double_ended_queue.h new file mode 100644 index 0000000..df3b038 --- /dev/null +++ b/collections/double_ended_queue/double_ended_queue.h @@ -0,0 +1,43 @@ +#ifndef DOUBLE_ENDED_QUEUE_H +#define DOUBLE_ENDED_QUEUE_H + +typedef struct double_ended_queue deq; + +/*constructors*/ +deq* deq_new(); +deq* deq_with_capacity(int); + +/*management*/ +int deq_size(deq*); +int deq_capacity(deq*); +deq* deq_cp(deq*); + +/* Note: Elements are not freed + * deq_clear should be called before if they are no longer needed.*/ +void deq_free(deq*); + +/*Free all elements within queue*/ +void deq_clear(deq*); + +/*data*/ +void deq_push_front(deq*, void*); +void deq_push_back(deq*, void*); +void deq_set(deq*, int, void*); +void deq_insert(deq*, int, void*); +void* deq_pop_front(deq*); +void* deq_pop_back(deq*); +void* deq_index(deq*, int); +void* deq_front(deq*); +void* deq_back(deq*); +void* deq_swap_rm_front(deq*, int); +void* deq_swap_rm_back(deq*, int); + +void deq_swap(deq*, int, int); + +/*Note: Does not currently reduce memory footprint*/ +void deq_truncate(deq*, int); +void deq_reserve(deq*, int); + +void deq_remove(deq*, int); +void deq_print(deq*, char* (void*)); +#endif |