Next: rbtree_uwalk, Previous: rbtree_utraverse, Up: Public Routines
Walk along a tree, processing each node.
#include <rbtree/rbtree.h>int rbtree_walk( RBTree rbtree, int (*action)(void *nd,Visit visit,unsigned long level), SiblingOrder sibling_order, Visit visit );
RBTree rbtree
- a handle to the rbtree to traverse
int (*action)(void *nd,Visit visit,unsigned long level)
- the user supplied action routine applied to each node
SiblingOrder sibling_order
- The direction in which the tree is traversed.
Possible values for aSiblingOrder
are as follows:LEFT_TO_RIGHT
,RIGHT_TO_LEFT
Visit visit
- The node traversals at which to call the action routine. The logical or of possible
Visit
values.Possible values for aVisit
are as follows:PRE_ORDER
,IN_ORDER
,POST_ORDER
This routine traverses an rbtree
, calling a user supplied action
function at selectable traversals of each node (any combination of
pre-order, in-order, or post-order). The function is informed of
which node traversal and which tree level it is called from. The
walk is aborted if the action routine returns non-zero.
The traversals at which the action routine is called at are
specified by the logical or of PRE_ORDER
, IN_ORDER
, or
POST_ORDER
.
If the action routines all return ‘0’, it returns ‘0’, else it returns the value returned by the last action routine called.