AVL_NEAREST(3AVL) | AVL Tree Library Functions | AVL_NEAREST(3AVL) |
avl_nearest
— find
the nearest node in an AVL tree
AVL Tree Library (libavl, -lavl)
#include <sys/avl.h>
void *
avl_nearest
(avl_tree_t *tree,
avl_index_t where, int
direction);
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.
The avl_nearest
() function returns the
node that is closest or NULL if there is not a matching
one.
See the EXAMPLES section in libavl(3LIB).
See Locking in libavl(3LIB).
May 7, 2015 | OmniOS |