Next: , Previous: Delete, Up: Private Routines


3.2.3 Free_in_order

Traverse a tree, freeing nodes in-order.

Synopsis

     #include <rbtree/rbtree.h>
     
     
     
static void Free_in_order( Tree *tree, Node *node, void (*nfree)(void *), SiblingOrder sibling_order );

Parameters

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 a SiblingOrder are as follows: LEFT_TO_RIGHT, RIGHT_TO_LEFT

Description

Traverse the given tree, freeing (in-order) as we go. Recursive, so it uses more resources than Free_post_order.