Data Structures | |
struct | cucon_rbset |
Functions | |
void | cucon_rbset_init (cucon_rbset_t rbset, cu_clop(cmp, int, void *, void *)) |
cucon_rbset_t | cucon_rbset_new (cu_clop(cmp, int, void *, void *)) |
cu_bool_t | cucon_rbset_is_empty (cucon_rbset_t set) |
void | cucon_rbset_init_str_cmp (cucon_rbset_t rbset) |
cucon_rbset_t | cucon_rbset_new_str_cmp (void) |
cu_bool_t | cucon_rbset_insert (cucon_rbset_t rbset, void *key) |
cu_bool_t | cucon_rbset_erase (cucon_rbset_t rbset, void *key) |
void * | cucon_rbset_find (cucon_rbset_t rbset, void *key) |
void | cucon_rbset_nearest (cucon_rbset_t set, void *key, cu_ptr_ptr_t below_out, cu_ptr_ptr_t equal_out, cu_ptr_ptr_t above_out) |
void | cucon_rbset_iter (cucon_rbset_t set, cu_clop(cb, void, void *)) |
void | cucon_rbset_rev_iter (cucon_rbset_t set, cu_clop(cb, void, void *)) |
cu_bool_t | cucon_rbset_conj (cucon_rbset_t set, cu_clop(cb, cu_bool_t, void *key)) |
cu_bool_t | cucon_rbset_rev_conj (cucon_rbset_t set, cu_clop(cb, cu_bool_t, void *)) |
cu_bool_t cucon_rbset_conj | ( | cucon_rbset_t | set, | |
cu_clop(cb, cu_bool_t, void *key) | ||||
) |
Applies cb to each element of set in order, exiting with false as soon as cb returns false, otherwise returns true.
cu_bool_t cucon_rbset_erase | ( | cucon_rbset_t | rbset, | |
void * | key | |||
) |
If key is in rbset, erase it and return true, else return false.
void* cucon_rbset_find | ( | cucon_rbset_t | rbset, | |
void * | key | |||
) |
Return stored element of rbset equal to key if found, else NULL.
void cucon_rbset_init | ( | cucon_rbset_t | rbset, | |
cu_clop(cmp, int, void *, void *) | ||||
) |
Construct rbset as an empty set where cmp defines a total order over elements in the usual style of strcmp
. That is, cmp shall return negative for ‘<’, zero for ‘=’, and positive for ‘>’.
void cucon_rbset_init_str_cmp | ( | cucon_rbset_t | rbset | ) |
Construct rbset as an empty set of strings, using cu_str_cmp.
cu_bool_t cucon_rbset_insert | ( | cucon_rbset_t | rbset, | |
void * | key | |||
) |
If key is not in rbset, insert it and return true, else return false.
cu_bool_t cucon_rbset_is_empty | ( | cucon_rbset_t | set | ) |
True iff set is empty.
void cucon_rbset_iter | ( | cucon_rbset_t | set, | |
cu_clop(cb, void, void *) | ||||
) |
Applies cb to each element of set in order.
void cucon_rbset_nearest | ( | cucon_rbset_t | set, | |
void * | key, | |||
cu_ptr_ptr_t | below_out, | |||
cu_ptr_ptr_t | equal_out, | |||
cu_ptr_ptr_t | above_out | |||
) |
Return the elements of set below, equal, and above key in *below_out,
*equal_out,
and *above_out,
respectively. NULL
is returned where no applicable node exists if set.
cucon_rbset_t cucon_rbset_new | ( | cu_clop(cmp, int, void *, void *) | ) |
Return an empty set where elements are compared according to cmp.
cucon_rbset_t cucon_rbset_new_str_cmp | ( | void | ) |
Return an empty set of string, using cu_str_cmp.
cu_bool_t cucon_rbset_rev_conj | ( | cucon_rbset_t | set, | |
cu_clop(cb, cu_bool_t, void *) | ||||
) |
Applies cb to each element of set in reverse order, exiting immediately with false if cb returns false, otherwise returns true.
void cucon_rbset_rev_iter | ( | cucon_rbset_t | set, | |
cu_clop(cb, void, void *) | ||||
) |
Applies cb to each element of set in reverse order.