group
group__libshare__memtree
A self-balancing tree data structure.

B-Tree Index Map

Tree nodes are composed of a data segment, a "left branch", and a "right branch". Nodes that do not branch are called leafs.
typedef
typedef void(* shtree_f)(shtree_t *)
function
void shtree_data_set
(shtree_t *node, void *data)
Set a data segment for a tree node.
function
void* shtree_data_get
(shtree_t *node)
Get a data segment from a tree node.
function
shtree_t* shtree_new
(shtree_t *tree, void *data)
function
shtree_t* shtree_init
(int flags)
function
void shtree_free_node
(shtree_t *node)
function
void shtree_remove_branch
(shtree_t *node)
function
shtree_t* shtree_left_new
(shtree_t *tree, void *data)
function
shtree_t* shtree_right_new
(shtree_t *tree, void *data)
function
shtree_t* shtree_right
(shtree_t *tree)
function
shtree_t* shtree_left
(shtree_t *tree)
function
int shtree_leaf
(shtree_t *tree)
function
shtree_t* shtree_root
(shtree_t *node)
function
shtree_t* shtree_parent
(shtree_t *node)
function
int shtree_flags
(shtree_t *node)
function
int shtree_root_flags
(shtree_t *node)
function
void shtree_traverse_pre
(shtree_t *node, shtree_f proc)
function
void shtree_traverse_in
(shtree_t *node, shtree_f proc)
function
void shtree_traverse_post
(shtree_t *node, shtree_f proc)
function
void shtree_traverse
(shtree_t *node, int order, shtree_f proc)
function
void shtree_free
(shtree_t **tree_p)
define
SHTREE_ORDER_PRE
1
define
SHTREE_ORDER_IN
2
define
SHTREE_ORDER_POST
3
define
SHTREE_PERM
(1 << 10)
Do not allow nodes to be removed.
define
SHTREE_RECYCLE
(1 << 11)
Re-use old intermediate branch nodes that are deleted.
define
SHTREE_DEALLOC
(1 << 12)
De-allocate the data segments provided.