Skip to content
Snippets Groups Projects
Commit a3539480 authored by paul.albuquer's avatar paul.albuquer
Browse files

Rephrased few things arbre => tree

parent 77e03ea2
No related branches found
No related tags found
No related merge requests found
Pipeline #38369 passed
...@@ -21,20 +21,20 @@ date: "2025-03-14" ...@@ -21,20 +21,20 @@ date: "2025-03-14"
## Recherche du parent ## Recherche du parent
``` ```
tree position(arbre, clé) arbre position(tree, clé)
si est_non_vide(arbre) si est_non_vide(tree)
si clé < clé(arbre) si clé < clé(tree)
suivant = gauche(arbre) suivant = gauche(tree)
sinon sinon
suivant = droite(arbre) suivant = droite(tree)
tant que clé(arbre) != clé && est_non_vide(suivant) tant que clé(tree) != clé && est_non_vide(suivant)
arbre = suivant tree = suivant
si clé < clé(arbre) si clé < clé(tree)
suivant = gauche(arbre) suivant = gauche(tree)
sinon sinon
suivant = droite(arbre) suivant = droite(tree)
retourne arbre retourne suivant
``` ```
# Pseudo-code d'insertion (2/4) # Pseudo-code d'insertion (2/4)
...@@ -46,14 +46,14 @@ tree position(arbre, clé) ...@@ -46,14 +46,14 @@ tree position(arbre, clé)
## Ajout de l'enfant ## Ajout de l'enfant
``` ```
rien ajout(arbre, clé) rien ajout(tree, clé)
si est_vide(arbre) si est_vide(tree)
arbre = nœud(clé) tree = nœud(clé)
sinon sinon
si clé < clé(arbre) si clé < clé(tree)
gauche(arbre) = nœud(clé) gauche(tree) = nœud(clé)
sinon si clé > clé(arbre) sinon si clé > clé(tree)
droite(arbre) = nœud(clé) droite(tree) = nœud(clé)
sinon sinon
retourne retourne
``` ```
...@@ -89,15 +89,15 @@ node *position(node *tree, key_t key) { ...@@ -89,15 +89,15 @@ node *position(node *tree, key_t key) {
## Ajout du fils (pseudo-code) ## Ajout du fils (pseudo-code)
``` ```
rien ajout(arbre, clé) rien ajout(tree, clé)
si est_vide(arbre) si est_vide(tree)
arbre = nœud(clé) tree = nœud(clé)
sinon sinon
arbre = position(arbre, clé) tree = position(tree, clé)
si clé < clé(arbre) si clé < clé(tree)
gauche(arbre) = nœud(clé) gauche(tree) = nœud(clé)
sinon si clé > clé(arbre) sinon si clé > clé(tree)
droite(arbre) = nœud(clé) droite(tree) = nœud(clé)
sinon sinon
retourne retourne
``` ```
...@@ -242,21 +242,21 @@ flowchart TB; ...@@ -242,21 +242,21 @@ flowchart TB;
## Pour une feuille ou absent (ensemble) ## Pour une feuille ou absent (ensemble)
``` ```
tree suppression(arbre, clé) arbre suppression(tree, clé)
sous_arbre = position(arbre, clé) sub_tree = position(tree, clé)
si est_vide(sous_arbre) ou clé(sous_arbre) != clé si est_vide(sub_tree) ou clé(sub_tree) != clé
retourne vide retourne vide
sinon sinon
si est_feuille(sous_arbre) et clé(sous_arbre) == clé si est_feuille(sub_tree) et clé(sub_tree) == clé
nouvelle_feuille = parent(arbre, sous_arbre) nouvelle_feuille = parent(tree, sub_tree)
si est_vide(nouvelle_feuille) si est_vide(nouvelle_feuille)
arbre = vide arbre = vide
sinon sinon
si gauche(nouvelle_feuille) == sous_arbre si gauche(nouvelle_feuille) == sub_tree
gauche(nouvelle_feuille) = vide gauche(nouvelle_feuille) = vide
sinon sinon
droite(nouvelle_feuille) = vide droite(nouvelle_feuille) = vide
retourne sous_arbre retourne sub_tree
``` ```
# Il nous manque le code pour le `parent` # Il nous manque le code pour le `parent`
...@@ -266,11 +266,11 @@ tree suppression(arbre, clé) ...@@ -266,11 +266,11 @@ tree suppression(arbre, clé)
. . . . . .
``` ```
tree parent(arbre, sous_arbre) arbre parent(tree, sub_tree)
si est_non_vide(arbre) si est_non_vide(tree)
actuel = arbre actuel = tree
parent = actuel parent = actuel
clé = clé(sous_arbre) clé = clé(sub_tree)
faire faire
si (clé != clé(actuel)) si (clé != clé(actuel))
parent = actuel parent = actuel
...@@ -280,7 +280,7 @@ tree parent(arbre, sous_arbre) ...@@ -280,7 +280,7 @@ tree parent(arbre, sous_arbre)
actuel = droite(actuel) actuel = droite(actuel)
sinon sinon
retour parent retour parent
tant_que (actuel != sous_arbre) tant_que (actuel != sub_tree)
retourne vide retourne vide
``` ```
...@@ -293,21 +293,21 @@ tree parent(arbre, sous_arbre) ...@@ -293,21 +293,21 @@ tree parent(arbre, sous_arbre)
. . . . . .
``` ```
tree suppression(arbre, clé) arbre suppression(tree, clé)
sous_arbre = position(arbre, clé) sub_tree = position(tree, clé)
si est_vide(gauche(sous_arbre)) ou est_vide(droite(sous_arbre)) si est_vide(gauche(sub_tree)) ou est_vide(droite(sub_tree))
parent = parent(arbre, sous_arbre) parent = parent(tree, sub_tree)
si est_vide(gauche(sous_arbre)) si est_vide(gauche(sub_tree))
si droite(parent) == sous_arbre si droite(parent) == sub_tree
droite(parent) = droite(sous_arbre) droite(parent) = droite(sub_tree)
sinon sinon
gauche(parent) = droite(sous_arbre) gauche(parent) = droite(sub_tree)
sinon sinon
si droite(parent) == sous_arbre si droite(parent) == sub_tree
droite(parent) = gauche(sous_arbre) droite(parent) = gauche(sub_tree)
sinon sinon
gauche(parent) = gauche(sous_arbre) gauche(parent) = gauche(sub_tree)
retourne sous_arbre retourne sub_tree
``` ```
...@@ -318,12 +318,12 @@ tree suppression(arbre, clé) ...@@ -318,12 +318,12 @@ tree suppression(arbre, clé)
## Pour au moins deux enfants (ensemble) ## Pour au moins deux enfants (ensemble)
``` ```
tree suppression(arbre, clé) arbre suppression(tree, clé)
sous_arbre = position(arbre, clé) # on revérifie pas que c'est bien la clé sub_tree = position(tree, clé) # on ne revérifie pas que c'est bien la clé
si est_non_vide(gauche(sous_arbre)) et est_non_vide(droite(sous_arbre)) si est_non_vide(gauche(sub_tree)) et est_non_vide(droite(sub_tree))
max_gauche = position(gauche(sous_arbre), clé) max_gauche = position(gauche(sub_tree), clé)
échange(clé(max_gauche), clé(sous_arbre)) échange(clé(max_gauche), clé(sub_tree))
suppression(gauche(sous_arbre), clé) suppression(gauche(sub_tree), clé)
``` ```
# Exercices (poster sur matrix) # Exercices (poster sur matrix)
...@@ -333,15 +333,15 @@ tree suppression(arbre, clé) ...@@ -333,15 +333,15 @@ tree suppression(arbre, clé)
. . . . . .
``` ```
tree insertion(arbre, clé) arbre insertion(tree, clé)
si est_vide(arbre) si est_vide(tree)
retourne nœud(clé) retourne nœud(clé)
si (clé < arbre->clé) si (clé < tree(clé))
gauche(arbre) = insert(gauche(arbre), clé) gauche(tree) = insert(gauche(tree), clé)
sinon sinon
droite(arbre) = insert(droite(arbre), clé) droite(tree) = insert(droite(tree), clé)
retourne arbre retourne tree
``` ```
# Exercices (poster sur matrix) # Exercices (poster sur matrix)
...@@ -351,15 +351,15 @@ tree insertion(arbre, clé) ...@@ -351,15 +351,15 @@ tree insertion(arbre, clé)
. . . . . .
``` ```
booléen recherche(arbre, clé) booléen recherche(tree, clé)
si est_vide(arbre) si est_vide(tree)
retourne faux // pas trouvée retourne faux // pas trouvée
si clé(arbre) == clé si clé(tree) == clé
retourne vrai // trouvée retourne vrai // trouvée
si clé < clé(arbre) si clé < clé(tree)
retourne recherche(gauche(arbre), clé) retourne recherche(gauche(tree), clé)
sinon sinon
retourne recherche(droite(arbre), clé) retourne recherche(droite(tree), clé)
``` ```
# Exercices (à la maison) # Exercices (à la maison)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment