From c3e8bacc389099e332239319f61338f2be6704cf Mon Sep 17 00:00:00 2001 From: 0scar Date: Sun, 2 Jan 2022 20:14:18 +0100 Subject: Add iterator reset function This avoids that one has to malloc a new iterator struct --- src/btree.h | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/btree.h') diff --git a/src/btree.h b/src/btree.h index 2cb4016..13b0a4b 100644 --- a/src/btree.h +++ b/src/btree.h @@ -36,20 +36,22 @@ struct btree* btree_new_with_allocator( void *(*alloc)(size_t), void (*dealloc)(void*)); -void btree_free(struct btree *btree); +void btree_free(struct btree *btree); -void* btree_search(struct btree *btree, void *elem); -void btree_insert(struct btree *btree, void *elem); -int btree_delete(struct btree *btree, void *elem); +void* btree_search(struct btree *btree, void *elem); +void btree_insert(struct btree *btree, void *elem); +int btree_delete(struct btree *btree, void *elem); -void btree_print(struct btree *btree, void (*print_elem)(const void*)); +void btree_print(struct btree *btree, void (*print_elem)(const void*)); -void* btree_first(struct btree *btree); -void* btree_last(struct btree *btree); +void* btree_first(struct btree *btree); +void* btree_last(struct btree *btree); size_t btree_size(struct btree *btree); -struct btree_iter_t* btree_iter_t_new(struct btree *tree); -void* btree_iter(struct btree *tree, struct btree_iter_t *iter); +struct btree_iter_t* btree_iter_t_new(struct btree* tree); +void btree_iter_t_reset(struct btree *tree, struct btree_iter_t** it); + +void* btree_iter(struct btree *tree, struct btree_iter_t *iter); #endif -- cgit v1.3