From 185d3f6677ceba4aff0d574a27dad9d2bd409396 Mon Sep 17 00:00:00 2001 From: Nathan Giddings Date: Tue, 7 Nov 2023 12:31:16 -0600 Subject: [PATCH] Added function to delete contents of AVL tree --- include/avltree.h | 10 +++++++++- src/avltree.c | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/include/avltree.h b/include/avltree.h index c248241..c50c700 100644 --- a/include/avltree.h +++ b/include/avltree.h @@ -38,4 +38,12 @@ struct avltree_t *avl_remove(struct avltree_t *tree, int key); * @param key * @return void* */ -void *avl_get(struct avltree_t *tree, int key); \ No newline at end of file +void *avl_get(struct avltree_t *tree, int key); + +/** + * @brief Removes every node present on the given tree. + * + * @param tree + * @return NULL + */ +void *avl_clear(struct avltree_t *tree); \ No newline at end of file diff --git a/src/avltree.c b/src/avltree.c index a8268e4..393e651 100644 --- a/src/avltree.c +++ b/src/avltree.c @@ -198,4 +198,13 @@ void *avl_get(struct avltree_t *tree, int key) } } return NULL; +} + +void *avl_clear(struct avltree_t *tree) +{ + while(tree != NULL) + { + tree = avl_remove(tree, tree->key); + } + return tree; } \ No newline at end of file