RBTNode * rbt_find_great(RBTree *rbt, const RBTNode *data, bool equal_match)
RBTNode * rbt_iterate(RBTreeIterator *iter)
RBTNode *(* rbt_allocfunc)(void *arg)
RBTNode * rbt_insert(RBTree *rbt, const RBTNode *data, bool *isNew)
void rbt_begin_iterate(RBTree *rbt, RBTOrderControl ctrl, RBTreeIterator *iter)
void(* rbt_freefunc)(RBTNode *x, void *arg)
void(* rbt_combiner)(RBTNode *existing, const RBTNode *newdata, void *arg)
RBTree * rbt_create(Size node_size, rbt_comparator comparator, rbt_combiner combiner, rbt_allocfunc allocfunc, rbt_freefunc freefunc, void *arg)
RBTNode * rbt_find_less(RBTree *rbt, const RBTNode *data, bool equal_match)
RBTNode * rbt_leftmost(RBTree *rbt)
int(* rbt_comparator)(const RBTNode *a, const RBTNode *b, void *arg)
void rbt_delete(RBTree *rbt, RBTNode *node)
RBTNode * rbt_find(RBTree *rbt, const RBTNode *data)