Lines Matching refs:rbtree
2 * rbtree.h -- generic red-black tree
48 * the rbtree. This allows easy casting between an rbnode_t and the
56 /** parent in rbtree, RBTREE_NULL for root */
99 * @param rbtree: uninitialised memory for new tree, returned empty.
102 void rbtree_init(rbtree_t *rbtree, int (*cmpf)(const void *, const void *));
106 * @param rbtree: tree to insert to.
110 rbnode_t *rbtree_insert(rbtree_t *rbtree, rbnode_t *data);
114 * @param rbtree: tree to delete from.
119 rbnode_t *rbtree_delete(rbtree_t *rbtree, const void *key);
123 * @param rbtree: tree to find in.
127 rbnode_t *rbtree_search(rbtree_t *rbtree, const void *key);
131 * @param rbtree: tree to find in.
138 int rbtree_find_less_equal(rbtree_t *rbtree, const void *key,
143 * @param rbtree: tree
146 rbnode_t *rbtree_first(rbtree_t *rbtree);
150 * @param rbtree: tree
153 rbnode_t *rbtree_last(rbtree_t *rbtree);
157 * @param rbtree: tree
160 rbnode_t *rbtree_next(rbnode_t *rbtree);
164 * @param rbtree: tree
167 rbnode_t *rbtree_previous(rbnode_t *rbtree);
173 #define RBTREE_FOR(node, type, rbtree) \
174 for(node=(type)rbtree_first(rbtree); \
183 * Since that may trigger rebalances of the rbtree.
186 * The function must not alter the rbtree.