#include <sys/rbtree.h>
sys/rbtree.h
$NetBSD: rbtree.h,v 1.2 2012/02/17 08:20:55 yamt Exp $
macroRB_DIR_LEFT
#define RB_DIR_LEFT 0
macroRB_DIR_RIGHT
#define RB_DIR_RIGHT 1
macroRB_TREE_MIN
#define RB_TREE_MIN(T) rb_tree_iterate((T), NULL, RB_DIR_RIGHT)
macroRB_TREE_MAX
#define RB_TREE_MAX(T) rb_tree_iterate((T), NULL, RB_DIR_LEFT)
macroRB_TREE_FOREACH
#define RB_TREE_FOREACH(N, T) for ((N) = RB_TREE_MIN(T); (N); (N) = rb_tree_iterate((T), (N), RB_DIR_RIGHT))
macroRB_TREE_FOREACH_SAFE
#define RB_TREE_FOREACH_SAFE(N, T, TVAR) for ((N) = RB_TREE_MIN(T); (N) && ((TVAR) = rb_tree_iterate((T), (N), RB_DIR_RIGHT), 1); (N) = (TVAR))
macroRB_TREE_FOREACH_REVERSE
#define RB_TREE_FOREACH_REVERSE(N, T) for ((N) = RB_TREE_MAX(T); (N); (N) = rb_tree_iterate((T), (N), RB_DIR_LEFT))
macroRB_TREE_FOREACH_REVERSE_SAFE
#define RB_TREE_FOREACH_REVERSE_SAFE(N, T, TVAR) for ((N) = RB_TREE_MAX(T); (N) && ((TVAR) = rb_tree_iterate((T), (N), RB_DIR_LEFT), 1); (N) = (TVAR))
typedefrbto_compare_nodes_fn
typedef signed int (*rbto_compare_nodes_fn)(void *, const void *, const void *)
typedefrbto_compare_key_fn
typedef signed int (*rbto_compare_key_fn)(void *, const void *, const void *)
structrb_tree_ops_t
| rbto_compare_nodes_fn | rbto_compare_nodes | |
| rbto_compare_key_fn | rbto_compare_key | |
| size_t | rbto_node_offset | |
| void * | rbto_context |
typedefrb_tree_ops_t
typedef struct rb_tree_ops_t rb_tree_ops_t;
structrb_node
| void *[3] | opaque |
structrb_tree
| void *[8] | opaque |
macro_rb_availability
#define _rb_availability __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0);
functionrb_tree_init
_rb_availability void rb_tree_init(rb_tree_t *, const rb_tree_ops_t *)
man page · August 29, 2016
rb_tree_init(3) — red-black treefunctionrb_tree_insert_node
_rb_availability void * rb_tree_insert_node(rb_tree_t *, void *)
man page · August 29, 2016
rb_tree_insert_node(3) — red-black treefunctionrb_tree_find_node
_rb_availability void * rb_tree_find_node(rb_tree_t *, const void *)
man page · August 29, 2016
rb_tree_find_node(3) — red-black treefunctionrb_tree_find_node_geq
_rb_availability void * rb_tree_find_node_geq(rb_tree_t *, const void *)
man page · August 29, 2016
rb_tree_find_node_geq(3) — red-black treefunctionrb_tree_find_node_leq
_rb_availability void * rb_tree_find_node_leq(rb_tree_t *, const void *)
man page · August 29, 2016
rb_tree_find_node_leq(3) — red-black treefunctionrb_tree_remove_node
_rb_availability void rb_tree_remove_node(rb_tree_t *, void *)
man page · August 29, 2016
rb_tree_remove_node(3) — red-black treefunctionrb_tree_iterate
_rb_availability void * rb_tree_iterate(rb_tree_t *, void *, const unsigned int)
man page · August 29, 2016
rb_tree_iterate(3) — red-black treefunctionrb_tree_count
_rb_availability size_t rb_tree_count(rb_tree_t *)
man page · August 29, 2016
rb_tree_count(3) — red-black tree