diff --git a/src/tree.c b/src/tree.c index 55e01ca72b78f5702e3e69b86f5593e1a0aa51ab..e928777594cfbda978998ec9004bd2c6cf314ccd 100644 --- a/src/tree.c +++ b/src/tree.c @@ -340,9 +340,9 @@ static struct tree_node_t * insert_into_tree_node(struct tree_node_t * curr, voi } else { // recherche récursif de la position à insérer + mise à jour du facteur d'équilibre int cmp = preceed(key, get_tree_node_key(curr)); - if (cmp < 0) { //Cas 1 : clé du nv noeud inf a noeud curr => nv noeud dans curr->left + if (cmp < 0) { //Cas 1 : clé du nv noeud inf a noeud curr => nv noeud dans curr->left curr->left = insert_into_tree_node(curr->left, key, data, balanced, preceed); - } else if (cmp > 0) { //Cas 2 : clé du nv noeud sup a noeud curr => nv noeud dans curr->right + } else { //Cas 2 : cmp 0 OU clé du nv noeud sup a noeud curr => nv noeud dans curr->right curr->right = insert_into_tree_node(curr->right, key, data, balanced, preceed); } }//FIN PARTIE 1 @@ -545,9 +545,5 @@ static struct tree_node_t * remove_tree_node(struct tree_node_t * curr, void * k void * tree_remove(struct tree_t * T, void * key) { void* data = NULL; struct tree_node_t* node = remove_tree_node(get_root(T), key, &data, tree_is_balanced(T), T->preceed); - if (node) - { - T->freeKey(key); - } return data; }