diff options
Diffstat (limited to 'include/zix/tree.h')
-rw-r--r-- | include/zix/tree.h | 65 |
1 files changed, 17 insertions, 48 deletions
diff --git a/include/zix/tree.h b/include/zix/tree.h index a2d5fe7..d7d2cce 100644 --- a/include/zix/tree.h +++ b/include/zix/tree.h @@ -33,19 +33,13 @@ extern "C" { @{ */ -/** - A balanced binary search tree. -*/ +/// A balanced binary search tree typedef struct ZixTreeImpl ZixTree; -/** - An iterator over a @ref ZixTree. -*/ +/// An iterator over a @ref ZixTree typedef struct ZixTreeNodeImpl ZixTreeIter; -/** - Create a new (empty) tree. -*/ +/// Create a new (empty) tree ZIX_API ZixTree* zix_tree_new(bool allow_duplicates, @@ -53,101 +47,76 @@ zix_tree_new(bool allow_duplicates, void* cmp_data, ZixDestroyFunc destroy); -/** - Free `t`. -*/ +/// Free `t` ZIX_API void zix_tree_free(ZixTree* t); -/** - Return the number of elements in `t`. -*/ +/// Return the number of elements in `t` ZIX_PURE_API size_t zix_tree_size(const ZixTree* t); -/** - Insert the element `e` into `t` and point `ti` at the new element. -*/ +/// Insert the element `e` into `t` and point `ti` at the new element ZIX_API ZixStatus zix_tree_insert(ZixTree* t, void* e, ZixTreeIter** ti); -/** - Remove the item pointed at by `ti` from `t`. -*/ +/// Remove the item pointed at by `ti` from `t` ZIX_API ZixStatus zix_tree_remove(ZixTree* t, ZixTreeIter* ti); /** Set `ti` to an element equal to `e` in `t`. + If no such item exists, `ti` is set to NULL. */ ZIX_API ZixStatus zix_tree_find(const ZixTree* t, const void* e, ZixTreeIter** ti); -/** - Return the data associated with the given tree item. -*/ +/// Return the data associated with the given tree item ZIX_PURE_API void* zix_tree_get(const ZixTreeIter* ti); -/** - Return an iterator to the first (smallest) element in `t`. -*/ +/// Return an iterator to the first (smallest) element in `t` ZIX_PURE_API ZixTreeIter* zix_tree_begin(ZixTree* t); -/** - Return an iterator the the element one past the last element in `t`. -*/ +/// Return an iterator the the element one past the last element in `t` ZIX_CONST_API ZixTreeIter* zix_tree_end(ZixTree* t); -/** - Return true iff `i` is an iterator to the end of its tree. -*/ +/// Return true iff `i` is an iterator to the end of its tree ZIX_CONST_API bool zix_tree_iter_is_end(const ZixTreeIter* i); -/** - Return an iterator to the last (largest) element in `t`. -*/ +/// Return an iterator to the last (largest) element in `t` ZIX_PURE_API ZixTreeIter* zix_tree_rbegin(ZixTree* t); -/** - Return an iterator the the element one before the first element in `t`. -*/ +/// Return an iterator the the element one before the first element in `t` ZIX_CONST_API ZixTreeIter* zix_tree_rend(ZixTree* t); -/** - Return true iff `i` is an iterator to the reverse end of its tree. -*/ +/// Return true iff `i` is an iterator to the reverse end of its tree ZIX_CONST_API bool zix_tree_iter_is_rend(const ZixTreeIter* i); -/** - Return an iterator that points to the element one past `i`. -*/ +/// Return an iterator that points to the element one past `i` ZIX_PURE_API ZixTreeIter* zix_tree_iter_next(ZixTreeIter* i); -/** - Return an iterator that points to the element one before `i`. -*/ +/// Return an iterator that points to the element one before `i` ZIX_PURE_API ZixTreeIter* zix_tree_iter_prev(ZixTreeIter* i); |