35 typedef struct _cx_tnode_ *cx_tree_iterator;
36 typedef const struct _cx_tnode_ *cx_tree_const_iterator;
38 typedef struct _cx_tree_ cx_tree;
124 cx_tree_iterator
cx_tree_next(
const cx_tree *, cx_tree_const_iterator);
cx_tree_iterator cx_tree_insert_unique(cx_tree *, cxcptr, cxcptr)
Attempt to insert data into a tree.
Definition: cxtree.c:1669
void cx_tree_clear(cx_tree *)
Remove all pairs from a tree.
Definition: cxtree.c:1156
cxbool cx_tree_verify(const cx_tree *)
Validate a tree.
Definition: cxtree.c:1833
cx_tree_compare_func cx_tree_key_comp(const cx_tree *)
Get the key comparison function.
Definition: cxtree.c:1334
cx_tree_iterator cx_tree_begin(const cx_tree *)
Get an iterator to the first pair in the tree.
Definition: cxtree.c:1038
cx_tree_iterator cx_tree_insert_equal(cx_tree *, cxcptr, cxcptr)
Insert data into a tree.
Definition: cxtree.c:1696
cx_tree_iterator cx_tree_lower_bound(const cx_tree *, cxcptr)
Find the beginning of a subsequence.
Definition: cxtree.c:1536
cxsize cx_tree_count(const cx_tree *, cxcptr)
Get the number of elements matching a key.
Definition: cxtree.c:1624
cxbool(* cx_tree_compare_func)(cxcptr, cxcptr)
The tree's key comparison operator function.
Definition: cxtree.h:75
cxbool cx_tree_empty(const cx_tree *)
Check whether a tree is empty.
Definition: cxtree.c:1184
cxsize cx_tree_erase(cx_tree *, cxcptr)
Erase all elements from a tree matching the provided key.
Definition: cxtree.c:1793
cx_tree_iterator cx_tree_previous(const cx_tree *, cx_tree_const_iterator)
Get an iterator for the previous pair in the tree.
Definition: cxtree.c:1125
void cx_tree_erase_position(cx_tree *, cx_tree_iterator)
Erase an element from a tree.
Definition: cxtree.c:1723
cx_tree_iterator cx_tree_next(const cx_tree *, cx_tree_const_iterator)
Get an iterator for the next pair in the tree.
Definition: cxtree.c:1091
cxsize cx_tree_max_size(const cx_tree *)
Get the maximum number of pairs possible.
Definition: cxtree.c:1307
cxsize cx_tree_size(const cx_tree *)
Get the actual number of pairs in the tree.
Definition: cxtree.c:1284
cxptr cx_tree_get_key(const cx_tree *, cx_tree_const_iterator)
Get the key from a given iterator position.
Definition: cxtree.c:1449
cx_tree_iterator cx_tree_upper_bound(const cx_tree *, cxcptr)
Find the end of a subsequence.
Definition: cxtree.c:1565
void cx_tree_delete(cx_tree *)
Destroy a tree and all its elements.
Definition: cxtree.c:1258
cxptr cx_tree_assign(cx_tree *, cx_tree_iterator, cxcptr)
Assign data to an iterator position.
Definition: cxtree.c:1412
cx_tree_iterator cx_tree_find(const cx_tree *, cxcptr)
Locate an element in the tree.
Definition: cxtree.c:1507
cx_tree * cx_tree_new(cx_tree_compare_func, cx_free_func, cx_free_func)
Create a new tree without any elements.
Definition: cxtree.c:1220
cx_tree_iterator cx_tree_end(const cx_tree *)
Get an iterator for the position after the last pair in the tree.
Definition: cxtree.c:1064
void cx_tree_erase_range(cx_tree *, cx_tree_iterator, cx_tree_iterator)
Erase a range of elements from a tree.
Definition: cxtree.c:1757
void cx_tree_swap(cx_tree *, cx_tree *)
Swap the contents of two trees.
Definition: cxtree.c:1360
cxptr cx_tree_get_value(const cx_tree *, cx_tree_const_iterator)
Get the data from a given iterator position.
Definition: cxtree.c:1476
void cx_tree_equal_range(const cx_tree *, cxcptr, cx_tree_iterator *, cx_tree_iterator *)
Find a subsequence matching a given key.
Definition: cxtree.c:1596