From 4bb3166b89ab6b0200907cf0a1e7f975af3479c6 Mon Sep 17 00:00:00 2001 From: vitawrap <thevitawrap@gmail.com> Date: Sun, 9 Apr 2023 17:55:53 +0200 Subject: [PATCH] Trees: insertion pour cmp 0 et pas de freeKey dans tree_remove --- src/tree.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/tree.c b/src/tree.c index 55e01ca..e928777 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; } -- GitLab