.\" .\" This file and its contents are supplied under the terms of the .\" Common Development and Distribution License ("CDDL"), version 1.0. .\" You may only use this file in accordance with the terms of version .\" 1.0 of the CDDL. .\" .\" A full copy of the text of the CDDL should have accompanied this .\" source. A copy of the CDDL is also available via the Internet at .\" http://www.illumos.org/license/CDDL. .\" .\" .\" Copyright 2015 Joyent, Inc. .\" .Dd Apr 13, 2015 .Dt AVL_ADD 3AVL .Os .Sh NAME .Nm avl_add , .Nm avl_remove .Nd add and remove nodes from an AVL tree .Sh SYNOPSIS .Lb libavl .In sys/avl.h .Ft void .Fo avl_add .Fa "avl_tree_t *tree" .Fa "void *node" .Fc .Ft void .Fo avl_remove .Fa "avl_tree_t *tree" .Fa "void *node" .Fc .Sh DESCRIPTION The .Fn avl_add and .Fn avl_remove functions add and remove objects from the AVL tree rooted at .Fa tree . .Pp The .Fn avl_add function inserts .Fa node into the tree. .Fa node must not already be in the tree, thus implying it must not compare equal to any other node in the tree. Adding .Fa node to .Fa tree will take .Sy O(log(n)) time, as it implicitly determines where to place it in the tree. If .Fa node Ns 's location has already been determined by .Xr avl_find 3AVL , then instead use .Xr avl_insert 3AVL . .Pp The .Fn avl_remove function removes .Fa node from the tree rooted at .Fa tree . .Fa node must be present in the tree, otherwise, the behavior is undefined. Deleting .Fa node from .Fa tree occurs in .Sy O(log(n)) time. .Sh EXAMPLES See the .Sy EXAMPLES section in .Xr libavl 3LIB . .Sh INTERFACE STABILITY .Sy Committed .Sh MT-Level See .Sx Locking in .Xr libavl 3LIB . .Sh SEE ALSO .Xr avl_create 3AVL , .Xr avl_destroy 3AVL , .Xr avl_insert 3AVL , .Xr avl_insert_here 3AVL , .Xr libavl 3LIB