static void TreeDestHelper(rb_red_blk_tree* tree, rb_red_blk_node* x) { rb_red_blk_node* nil=tree->nil; if (x != nil) { TreeDestHelper(tree,x->left); TreeDestHelper(tree,x->right); tree->key_dtor_func(x->key); tree->info_dtor_func(x->info); free(x); } }
void TreeDestHelper(rb_red_blk_tree* tree, rb_red_blk_node* x) { rb_red_blk_node* nil=tree->nil; if (x != nil) { TreeDestHelper(tree,x->left); TreeDestHelper(tree,x->right); tree->DestroyKey(x->key); tree->DestroyInfo(x->info); free(x); } }
static void TreeDestHelper (RBTREE tree, RBNODE x) { RBNODE nil=tree->nil; if (x != nil) { TreeDestHelper(tree,x->left); TreeDestHelper(tree,x->right); TreeDestroyKeyInfo(tree, x->key, x->info); free(x); } }
void RbTreeDestroy (RBTREE tree) { TreeDestHelper(tree,tree->root->left); free(tree->root); free(tree->nil); free(tree); }
void rb_tree_destroy(rb_red_blk_tree* tree) { TreeDestHelper(tree,tree->root->left); free(tree->root); free(tree->nil); free(tree); }
void RBTreeDestroy(rb_red_blk_tree* tree) { TreeDestHelper(tree,tree->root->left); my_free(tree->root); my_free(tree->nil); my_free(tree); }