34 #if !defined(AVL_DEPTH) && !defined(AVL_COUNT)
avl_tree_t * avl_alloc_tree(avl_compare_t cmp, avl_freeitem_t freeitem)
void * avl_delete(avl_tree_t *avltree, const void *item)
struct avl_tree_t avl_tree_t
avl_node_t * avl_at(const avl_tree_t *avltree, unsigned int index)
struct avl_node_t * parent
avl_node_t * avl_fixup_node(avl_tree_t *avltree, avl_node_t *newnode)
avl_node_t * avl_insert_before(avl_tree_t *avltree, avl_node_t *node, avl_node_t *newnode)
int avl_search_closest(const avl_tree_t *avltree, const void *item, avl_node_t **avlnode)
void avl_unlink_node(avl_tree_t *avltree, avl_node_t *avlnode)
avl_node_t * avl_insert_after(avl_tree_t *avltree, avl_node_t *node, avl_node_t *newnode)
int(* avl_compare_t)(const void *, const void *)
struct avl_node_t avl_node_t
avl_node_t * avl_insert(avl_tree_t *avltree, void *item)
void avl_free_nodes(avl_tree_t *avltree)
unsigned int avl_index(const avl_node_t *avlnode)
unsigned int avl_count(const avl_tree_t *avltree)
void(* avl_freeitem_t)(void *)
avl_node_t * avl_insert_top(avl_tree_t *avltree, avl_node_t *newnode)
avl_node_t * avl_search(const avl_tree_t *avltree, const void *item)
avl_tree_t * avl_init_tree(avl_tree_t *rc, avl_compare_t cmp, avl_freeitem_t freeitem)
void avl_free_tree(avl_tree_t *avltree)
avl_node_t * avl_insert_node(avl_tree_t *avltree, avl_node_t *newnode)
struct avl_node_t * right
void avl_clear_tree(avl_tree_t *avltree)
void * avl_delete_node(avl_tree_t *avltree, avl_node_t *avlnode)
avl_node_t * avl_init_node(avl_node_t *newnode, void *item)