Ejemplo n.º 1
0
static void destroyRBNode(struct rb_node *rbn, struct rb_node *nil) {
	if (rbn != nil) {
		destroyRBNode(rbn->left, nil);
		destroyRBNode(rbn->right, nil);
		free(rbn);
	}
}
Ejemplo n.º 2
0
void destroyRBNode(Tree *tree, Node *node)
{
	if (node != tree->nil)
	{
		Node *left = node->left;
		Node *right = node->right;
		free(node);
		destroyRBNode(tree, left);
		destroyRBNode(tree, right);
	}
}
Ejemplo n.º 3
0
void destroyRBTree(struct rb_tree *rb) {
	destroyRBNode(rb->root, rb->nil);
	free(rb->nil);
	free(rb);
}
Ejemplo n.º 4
0
void destroyRBTree(Tree *tree)
{
	destroyRBNode(tree, tree->root);
	free(tree->nil);
}