xref: /titanic_41/usr/src/man/man3avl/avl_first.3avl (revision d9fc8ba670791dc3b8398347e67e1c5825d5e341)
1*d9fc8ba6SRobert Mustacchi.\"
2*d9fc8ba6SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3*d9fc8ba6SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4*d9fc8ba6SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5*d9fc8ba6SRobert Mustacchi.\" 1.0 of the CDDL.
6*d9fc8ba6SRobert Mustacchi.\"
7*d9fc8ba6SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8*d9fc8ba6SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9*d9fc8ba6SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10*d9fc8ba6SRobert Mustacchi.\"
11*d9fc8ba6SRobert Mustacchi.\"
12*d9fc8ba6SRobert Mustacchi.\" Copyright 2015 Joyent, Inc.
13*d9fc8ba6SRobert Mustacchi.\"
14*d9fc8ba6SRobert Mustacchi.Dd May 07, 2015
15*d9fc8ba6SRobert Mustacchi.Dt AVL_FIRST 3AVL
16*d9fc8ba6SRobert Mustacchi.Os
17*d9fc8ba6SRobert Mustacchi.Sh NAME
18*d9fc8ba6SRobert Mustacchi.Nm avl_first ,
19*d9fc8ba6SRobert Mustacchi.Nm AVL_NEXT ,
20*d9fc8ba6SRobert Mustacchi.Nm AVL_PREV ,
21*d9fc8ba6SRobert Mustacchi.Nm avl_last
22*d9fc8ba6SRobert Mustacchi.Nd get the first, next, previous, and last entries from an AVL tree
23*d9fc8ba6SRobert Mustacchi.Sh SYNOPSIS
24*d9fc8ba6SRobert Mustacchi.Lb libavl
25*d9fc8ba6SRobert Mustacchi.In sys/avl.h
26*d9fc8ba6SRobert Mustacchi.Ft void *
27*d9fc8ba6SRobert Mustacchi.Fo avl_first
28*d9fc8ba6SRobert Mustacchi.Fa "avl_tree_t *tree"
29*d9fc8ba6SRobert Mustacchi.Fc
30*d9fc8ba6SRobert Mustacchi.Ft void *
31*d9fc8ba6SRobert Mustacchi.Fo avl_last
32*d9fc8ba6SRobert Mustacchi.Fa "avl_tree_t *tree"
33*d9fc8ba6SRobert Mustacchi.Fc
34*d9fc8ba6SRobert Mustacchi.Ft void *
35*d9fc8ba6SRobert Mustacchi.Fo AVL_NEXT
36*d9fc8ba6SRobert Mustacchi.Fa "avl_tree_t *tree"
37*d9fc8ba6SRobert Mustacchi.Fa "void *node"
38*d9fc8ba6SRobert Mustacchi.Fc
39*d9fc8ba6SRobert Mustacchi.Ft void *
40*d9fc8ba6SRobert Mustacchi.Fo AVL_PREV
41*d9fc8ba6SRobert Mustacchi.Fa "avl_tree_t *tree"
42*d9fc8ba6SRobert Mustacchi.Fa "void *node"
43*d9fc8ba6SRobert Mustacchi.Fc
44*d9fc8ba6SRobert Mustacchi.Sh DESCRIPTION
45*d9fc8ba6SRobert MustacchiThe
46*d9fc8ba6SRobert Mustacchi.Fn avl_first
47*d9fc8ba6SRobert Mustacchiand
48*d9fc8ba6SRobert Mustacchi.Fn avl_last
49*d9fc8ba6SRobert Mustacchirespectively return the first and last entry in the tree specified by
50*d9fc8ba6SRobert Mustacchi.Fa tree .
51*d9fc8ba6SRobert MustacchiOrder in the tree is determined by the comparison function that was
52*d9fc8ba6SRobert Mustacchispecified at the time the tree was created with
53*d9fc8ba6SRobert Mustacchi.Xr avl_create 3AVL .
54*d9fc8ba6SRobert MustacchiIf
55*d9fc8ba6SRobert Mustacchi.Fa tree
56*d9fc8ba6SRobert Mustacchiis empty, then
57*d9fc8ba6SRobert Mustacchi.Fn avl_first
58*d9fc8ba6SRobert Mustacchiand
59*d9fc8ba6SRobert Mustacchi.Fn avl_last
60*d9fc8ba6SRobert Mustacchireturn
61*d9fc8ba6SRobert Mustacchi.Sy NULL .
62*d9fc8ba6SRobert Mustacchi.Pp
63*d9fc8ba6SRobert MustacchiThe
64*d9fc8ba6SRobert Mustacchi.Fn AVL_NEXT
65*d9fc8ba6SRobert Mustacchiand
66*d9fc8ba6SRobert Mustacchi.Fn AVL_PREV
67*d9fc8ba6SRobert Mustacchifunctions are macros that may be used to obtain the next and previous
68*d9fc8ba6SRobert Mustacchientry following
69*d9fc8ba6SRobert Mustacchi.Fa node
70*d9fc8ba6SRobert Mustacchiin the AVL tree
71*d9fc8ba6SRobert Mustacchi.Fa tree .
72*d9fc8ba6SRobert MustacchiIf there is no next or previous node, for example, if one was at the
73*d9fc8ba6SRobert Mustacchibeginning or end of the tree, then
74*d9fc8ba6SRobert Mustacchi.Sy NULL
75*d9fc8ba6SRobert Mustacchiis returned.
76*d9fc8ba6SRobert Mustacchi.Pp
77*d9fc8ba6SRobert MustacchiThese constructs are generally used as part of loops to iterate the
78*d9fc8ba6SRobert Mustacchitree. See the examples section in
79*d9fc8ba6SRobert Mustacchi.Xr libavl 3LIB
80*d9fc8ba6SRobert Mustacchifor more information on using this
81*d9fc8ba6SRobert Mustacchiinterface.
82*d9fc8ba6SRobert Mustacchi.Sh RETURN VALUES
83*d9fc8ba6SRobert MustacchiThe
84*d9fc8ba6SRobert Mustacchi.Fn avl_first
85*d9fc8ba6SRobert Mustacchifunction returns a pointer to the first entry in the AVL tree
86*d9fc8ba6SRobert Mustacchi.Fa tree
87*d9fc8ba6SRobert Mustacchior
88*d9fc8ba6SRobert Mustacchi.Sy NULL
89*d9fc8ba6SRobert Mustacchiif the AVL tree is empty.
90*d9fc8ba6SRobert Mustacchi.Pp
91*d9fc8ba6SRobert MustacchiThe
92*d9fc8ba6SRobert Mustacchi.Fn avl_last
93*d9fc8ba6SRobert Mustacchifunction returns a pointer to the last entry in the AVL tree
94*d9fc8ba6SRobert Mustacchi.Fa tree
95*d9fc8ba6SRobert Mustacchior
96*d9fc8ba6SRobert Mustacchi.Sy NULL
97*d9fc8ba6SRobert Mustacchiif the AVL tree is empty.
98*d9fc8ba6SRobert Mustacchi.Pp
99*d9fc8ba6SRobert MustacchiThe
100*d9fc8ba6SRobert Mustacchi.Fn AVL_NEXT
101*d9fc8ba6SRobert Mustacchimacro returns a pointer to the object in the tree that follows
102*d9fc8ba6SRobert Mustacchi.Fa node .
103*d9fc8ba6SRobert MustacchiIf
104*d9fc8ba6SRobert Mustacchi.Fa node
105*d9fc8ba6SRobert Mustacchiis the last entry in the tree,
106*d9fc8ba6SRobert Mustacchi.Sy NULL
107*d9fc8ba6SRobert Mustacchiis returned instead.
108*d9fc8ba6SRobert Mustacchi.Pp
109*d9fc8ba6SRobert MustacchiThe
110*d9fc8ba6SRobert Mustacchi.Fn AVL_PREV
111*d9fc8ba6SRobert Mustacchimacro returns a pointer to the object in the tree that precedes
112*d9fc8ba6SRobert Mustacchi.Fa node .
113*d9fc8ba6SRobert MustacchiIf
114*d9fc8ba6SRobert Mustacchi.Fa node
115*d9fc8ba6SRobert Mustacchiis the first entry in the tree,
116*d9fc8ba6SRobert Mustacchi.Sy NULL
117*d9fc8ba6SRobert Mustacchiis returned instead.
118*d9fc8ba6SRobert Mustacchi.Sh EXAMPLES
119*d9fc8ba6SRobert MustacchiSee the
120*d9fc8ba6SRobert Mustacchi.Sy EXAMPLES
121*d9fc8ba6SRobert Mustacchisection in
122*d9fc8ba6SRobert Mustacchi.Xr libavl 3LIB .
123*d9fc8ba6SRobert Mustacchi.Sh INTERFACE STABILITY
124*d9fc8ba6SRobert Mustacchi.Sy Committed
125*d9fc8ba6SRobert Mustacchi.Sh MT-Level
126*d9fc8ba6SRobert MustacchiSee
127*d9fc8ba6SRobert Mustacchi.Sx Locking
128*d9fc8ba6SRobert Mustacchiin
129*d9fc8ba6SRobert Mustacchi.Xr libavl 3LIB .
130*d9fc8ba6SRobert Mustacchi.Sh SEE ALSO
131*d9fc8ba6SRobert Mustacchi.Xr libavl 3LIB ,
132*d9fc8ba6SRobert Mustacchi.Xr avl_create 3AVL
133