From 10cd9eadf3f14d4b25ef85ea563938a784fcf20c Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Sat, 30 May 2020 20:11:45 -0400 Subject: Add deq_clear function for double ended queue. Frees all elements in double ended queue, does not free the queue struct itself (deq_free is used for this). --- collections/double_ended_queue.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'collections/double_ended_queue.c') diff --git a/collections/double_ended_queue.c b/collections/double_ended_queue.c index 956e362..7938307 100644 --- a/collections/double_ended_queue.c +++ b/collections/double_ended_queue.c @@ -184,6 +184,9 @@ deq *root; return root->base[root->end]; } +/* Note: Elements are not freed + * deq_clear should be called before if they are no longer needed. + */ void deq_free(root) deq *root; { @@ -193,6 +196,17 @@ deq *root; free(root); } +void deq_clear(root) +deq *root; +{ + int i, size; + + size = deq_size(root); + for (i = 0; i < size; i++) { + free(deq_index(root, i)); + } +} + void deq_print(root, to_string) deq *root; char* to_string(void*); -- cgit v1.1