From a7590807beb49c7d651b5f2af596e8c6989a0363 Mon Sep 17 00:00:00 2001 From: Pierre Kunzli <pierre.kuenzli@unige.ch> Date: Tue, 22 Feb 2022 14:38:16 +0100 Subject: [PATCH] re re correction code recherche parent et code recherche --- slides/cours_15.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/slides/cours_15.md b/slides/cours_15.md index 66bcab4..f72adb1 100644 --- a/slides/cours_15.md +++ b/slides/cours_15.md @@ -790,7 +790,7 @@ typedef struct _node { typedef node* tree_t; tree_t search(key_t key, tree_t tree) { tree_t current = tree; - while (NULL != current && !success) { + while (NULL != current) { if (current->key > X) { current = current->gauche; } else if (current->key < X){ @@ -877,12 +877,17 @@ int arbre_size(tree_t tree) { ``` arbre position(arbre, clé) si est_non_vide(arbre) + si clé < clé(arbre) + suivant = gauche(arbre) + sinon + suivant = droite(arbre) tant que clé(arbre) != clé && est_non_vide(suivant) + arbre = suivant si clé < clé(arbre) suivant = gauche(arbre) sinon suivant = droite(arbre) - arbre = suivant + returne arbre ``` @@ -917,10 +922,12 @@ ajout(arbre, clé) tree_t position(tree_t tree, key_t key) { tree_t current = tree; if (NULL != current) { + subtree = key > current->key ? current->right : + current->left; while (key != current->key && NULL != subtree) { + current = subtree; subtree = key > current->key ? current->right : current->left; - current = subtree; } } return current; -- GitLab