AVL_NEAREST(3AVL) AVL Tree Library Functions AVL_NEAREST(3AVL)

NAME


avl_nearest - find the nearest node in an AVL tree

SYNOPSIS


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

void *
avl_nearest(avl_tree_t *tree, avl_index_t where, int direction);

DESCRIPTION


The avl_nearest function returns the closest node in tree before or after
the insertion point specified by where.

The value of where is obtained when a non-NULL pointer is passed in to the
where argument of avl_find(3AVL) and it fails to find an entry in the tree.

If direction is set to AVL_AFTER, then the node that would logically have
followed it will be returned. If direction is instead set to AVL_BEFORE,
then the node that would have logically preceded it is returned.

When there is no nearest node, for example, AVL_AFTER is specified and the
entry would have been the last node in the tree, then NULL is returned.

If the tree is modified between a call to avl_find(3AVL) and avl_nearest(),
then the value of where from avl_find(3AVL) will no longer be valid and
avl_find(3AVL) must be called again.

RETURN VALUES


The avl_nearest() function returns the node that is closest or NULL if
there is not a matching one.

EXAMPLES


See the EXAMPLES section in libavl(3LIB).

INTERFACE STABILITY


Committed

MT-Level
See Locking in libavl(3LIB).

SEE ALSO


libavl(3LIB)

illumos May 7, 2015 illumos