From 700cb65dcf9f74eceb768eb35c7b7013bb21ce08 Mon Sep 17 00:00:00 2001 From: "paul.albuquer" <paul.albuquerque@hesge.ch> Date: Thu, 13 Mar 2025 17:22:15 +0100 Subject: [PATCH] changed named and structure suppression --- slides/cours_17.md | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/slides/cours_17.md b/slides/cours_17.md index d48198f..0822f97 100644 --- a/slides/cours_17.md +++ b/slides/cours_17.md @@ -239,24 +239,22 @@ flowchart TB; # Le pseudo-code de la suppression -## Pour une feuille ou absent (ensemble) +## Pour une feuille ou clé absente (ensemble) ``` -arbre suppression(tree, clé) - sub_tree = position(tree, clé) - si est_vide(sub_tree) ou clé(sub_tree) != clé - retourne vide - sinon - si est_feuille(sub_tree) et clé(sub_tree) == clé - nouvelle_feuille = parent(tree, sub_tree) - si est_vide(nouvelle_feuille) - arbre = vide - sinon - si gauche(nouvelle_feuille) == sub_tree - gauche(nouvelle_feuille) = vide - sinon - droite(nouvelle_feuille) = vide - retourne sub_tree +booléen suppression(tree, clé) + noeud = position(tree, clé) + si est_vide(noeud) ou clé(noeud) != clé + retourne faux + si est_feuille(noeud) + noeud_parent = parent(tree, noeud) + si est_vide(noeud_parent) + noeud = vide + sinon si gauche(noeud_parent) == noeud + gauche(noeud_parent) = vide + sinon si droite(noeud_parent) == noeud + droite(noeud_parent) = vide + retourne vrai ``` # Il nous manque le code pour le `parent` @@ -266,11 +264,11 @@ arbre suppression(tree, clé) . . . ``` -arbre parent(tree, sub_tree) +arbre parent(tree, noeud) si est_non_vide(tree) actuel = tree parent = actuel - clé = clé(sub_tree) + clé = clé(noeud) faire si (clé != clé(actuel)) parent = actuel @@ -279,8 +277,8 @@ arbre parent(tree, sub_tree) sinon actuel = droite(actuel) sinon - retour parent - tant_que (actuel != sub_tree) + retourne parent + tant_que (actuel != noeud) retourne vide ``` -- GitLab