Ejemplo n.º 1
0
/************************************************************************
Delete a node indentified by key.
@return	TRUE if success FALSE if not found */
UNIV_INTERN
ibool
rbt_delete(
/*=======*/
	ib_rbt_t*	tree,			/*!< in: rb tree */
	const void*	key)			/*!< in: key to delete */
{
	ibool		deleted = FALSE;
	ib_rbt_node_t*	node = (ib_rbt_node_t*) rbt_lookup(tree, key);

	if (node) {
		rbt_remove_node_and_rebalance(tree, node);

		ut_free(node);
		deleted = TRUE;
	}

	return(deleted);
}
Ejemplo n.º 2
0
void rbt_delete(rbt_t* tree, void* value){
    rbt_node_t* doomed = rbt_lookup(tree, value);
    if(doomed) rbt_delete_node(tree, doomed);
}