Lines Matching defs:rbtree
2 * rbtree.h -- generic red-black tree
17 * the rbtree. This allows easy casting between an rbnode_type and the
32 typedef struct rbtree rbtree_type;
33 struct rbtree {
49 /* rbtree.c */
51 rbnode_type *rbtree_insert(rbtree_type *rbtree, rbnode_type *data);
54 rbnode_type *rbtree_delete(rbtree_type *rbtree, const void *key);
55 rbnode_type *rbtree_search(rbtree_type *rbtree, const void *key);
58 int rbtree_find_less_equal(rbtree_type *rbtree, const void *key, rbnode_type **result);
59 rbnode_type *rbtree_first(rbtree_type *rbtree);
60 rbnode_type *rbtree_last(rbtree_type *rbtree);
61 rbnode_type *rbtree_next(rbnode_type *rbtree);
62 rbnode_type *rbtree_previous(rbnode_type *rbtree);
64 #define RBTREE_WALK(rbtree, k, d) \
65 for((rbtree)->_node = rbtree_first(rbtree);\
66 (rbtree)->_node != RBTREE_NULL && ((k) = (rbtree)->_node->key) && \
67 ((d) = (void *) (rbtree)->_node); (rbtree)->_node = rbtree_next((rbtree)->_node))
71 #define RBTREE_FOR(node, type, rbtree) \
72 for(node=(type)rbtree_first(rbtree); \