34 #ifndef LIBAVL_ALLOCATOR
35 #define LIBAVL_ALLOCATOR
49 #ifndef AVL_MAX_HEIGHT
50 #define AVL_MAX_HEIGHT 92
94 #define avl_count(table) ((size_t)(table)->avl_count)
struct avl_table * avl_create(avl_comparison_func *, void *, struct libavl_allocator *)
void * avl_t_find(struct avl_traverser *, struct avl_table *, void *)
void * avl_delete(struct avl_table *, const void *)
void * avl_find(const struct avl_table *, const void *)
void * avl_t_next(struct avl_traverser *)
void * avl_t_replace(struct avl_traverser *, void *)
void avl_destroy(struct avl_table *, avl_item_func *)
void * avl_replace(struct avl_table *, void *)
void avl_assert_insert(struct avl_table *, void *)
struct avl_table * avl_copy(const struct avl_table *, avl_copy_func *, avl_item_func *, struct libavl_allocator *)
void * avl_copy_func(void *avl_item, void *avl_param)
struct libavl_allocator avl_allocator_default
void avl_item_func(void *avl_item, void *avl_param)
void * avl_malloc(struct libavl_allocator *, size_t)
void * avl_t_copy(struct avl_traverser *, const struct avl_traverser *)
void * avl_t_insert(struct avl_traverser *, struct avl_table *, void *)
void * avl_assert_delete(struct avl_table *, void *)
void ** avl_probe(struct avl_table *, void *)
void avl_t_init(struct avl_traverser *, struct avl_table *)
void avl_free(struct libavl_allocator *, void *)
void * avl_t_cur(struct avl_traverser *)
void * avl_t_first(struct avl_traverser *, struct avl_table *)
void * avl_insert(struct avl_table *, void *)
int avl_comparison_func(const void *avl_a, const void *avl_b, void *avl_param)
void * avl_t_prev(struct avl_traverser *)
void * avl_t_last(struct avl_traverser *, struct avl_table *)
struct avl_node * avl_link[2]
avl_comparison_func * avl_compare
struct libavl_allocator * avl_alloc
unsigned long avl_generation
struct avl_node * avl_root
unsigned long avl_generation
struct avl_node * avl_stack[AVL_MAX_HEIGHT]
struct avl_table * avl_table
struct avl_node * avl_node
void(* libavl_free)(struct libavl_allocator *, void *libavl_block)