28#ifndef LIBDICT_TREE_COMMON_H__
29#define LIBDICT_TREE_COMMON_H__
33#define TREE_NODE_FIELDS(node_type) \
44#define TREE_FIELDS(node_type) \
47 dict_compare_func cmp_func; \
54#define TREE_ITERATOR_FIELDS(tree_type, node_type) \
void(* dict_delete_func)(void *, void *)
bool(* dict_visit_func)(const void *, void *, void *)
bool tree_iterator_valid(const void *iterator)
void ** tree_iterator_datum(void *iterator)
void ** tree_search_lt(void *tree, const void *key)
void tree_iterator_free(void *iterator)
void tree_node_rot_right(void *tree, void *node)
void * tree_search_node(void *tree, const void *key)
size_t tree_free(void *tree, dict_delete_func delete_func)
size_t tree_min_path_length(const void *tree)
bool tree_iterator_next(void *iterator)
void * tree_node_max(void *node)
bool tree_iterator_nextn(void *iterator, size_t count)
bool tree_iterator_prev(void *iterator)
size_t tree_traverse(void *tree, dict_visit_func visit, void *user_data)
void * tree_search_gt_node(void *tree, const void *key)
size_t tree_max_path_length(const void *tree)
bool tree_iterator_first(void *iterator)
void ** tree_search(void *tree, const void *key)
void * tree_search_ge_node(void *tree, const void *key)
void ** tree_search_le(void *tree, const void *key)
bool tree_iterator_search_ge(void *iterator, const void *key)
size_t tree_clear(void *tree, dict_delete_func delete_func)
void ** tree_search_gt(void *tree, const void *key)
bool tree_iterator_prevn(void *iterator, size_t count)
#define TREE_NODE_FIELDS(node_type)
struct tree_node_base tree_node_base
void * tree_node_prev(void *node)
void tree_node_rot_left(void *tree, void *node)
void * tree_node_next(void *node)
const void * tree_iterator_key(const void *iterator)
#define TREE_FIELDS(node_type)
bool tree_iterator_search_gt(void *iterator, const void *key)
bool tree_iterator_last(void *iterator)
int tree_iterator_compare(const void *iterator1, const void *iterator2)
bool tree_select(void *tree, size_t n, const void **key, void **datum)
void * tree_search_lt_node(void *tree, const void *key)
bool tree_iterator_search_le(void *iterator, const void *key)
struct tree_base tree_base
bool tree_iterator_search_lt(void *iterator, const void *key)
void * tree_search_le_node(void *tree, const void *key)
void tree_iterator_invalidate(void *iterator)
size_t tree_count(const void *tree)
size_t tree_total_path_length(const void *tree)
void * tree_node_min(void *node)
bool tree_iterator_search(void *iterator, const void *key)
void ** tree_search_ge(void *tree, const void *key)