Next: uFree_in_order, Previous: Delete, Up: Private Routines
Traverse a tree, freeing nodes in-order.
#include <rbtree/rbtree.h>static void Free_in_order( Tree *tree, Node *node, void (*nfree)(void *), SiblingOrder sibling_order );
Tree *tree
- the tree to free
Node *node
- the starting node, must be
ROOT(tree)
void (*nfree)(void *)
- a free routine for node data, may be
RBTREE_NULL_DELETE
SiblingOrder sibling_order
- the order in which to traverse the tree
Possible values for aSiblingOrder
are as follows:LEFT_TO_RIGHT
,RIGHT_TO_LEFT
Traverse the given tree, freeing (in-order) as we go. Recursive, so
it uses more resources than Free_post_order
.