1 #ifndef _DRAGONTYPE_BINTREE_H_
2 #define _DRAGONTYPE_BINTREE_H_
8 typedef int (*BintreeComparator)(void *v1, void *v2, struct Bintree *tree);
9 typedef void (*BintreeFreeFunction)(void *value, void *arg);
11 typedef struct BintreeNode
15 struct BintreeNode *left;
16 struct BintreeNode *right;
19 typedef struct Bintree
23 BintreeComparator cmp;
26 Bintree bintree_create(size_t key_size, BintreeComparator cmp);
27 BintreeNode **bintree_search(Bintree *tree, void *key);
28 void bintree_add_node(Bintree *tree, BintreeNode **nodeptr, void *key, void *value);
29 void bintree_clear(Bintree *tree, BintreeFreeFunction func, void *arg);