AVL_ADD(3AVL) AVL Tree Library Functions AVL_ADD(3AVL)

avl_add, avl_removeadd and remove nodes from an AVL tree

AVL Tree Library (libavl, -lavl)
#include <sys/avl.h>

void
avl_add(avl_tree_t *tree, void *node);

void
avl_remove(avl_tree_t *tree, void *node);

The () and avl_remove() functions add and remove objects from the AVL tree rooted at tree.

The () function inserts node into the tree. node must not already be in the tree, thus implying it must not compare equal to any other node in the tree. Adding node to tree will take O(log(n)) time, as it implicitly determines where to place it in the tree. If node's location has already been determined by avl_find(3AVL), then instead use avl_insert(3AVL).

The () function removes node from the tree rooted at tree. node must be present in the tree, otherwise, the behavior is undefined. Deleting node from tree occurs in O(log(n)) time.

See the EXAMPLES section in libavl(3LIB).

See Locking in libavl(3LIB).

avl_create(3AVL), avl_destroy(3AVL), avl_insert(3AVL), avl_insert_here(3AVL), libavl(3LIB)

April 13, 2015 OmniOS