Skip to content
Snippets Groups Projects
Verified Commit 1910c175 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

added pseudo code for suppression

parent b798bfc4
Branches
No related tags found
No related merge requests found
Pipeline #15774 passed
......@@ -231,6 +231,7 @@ flowchart TB;
* Échange de la valeur à droite dans le sous-arbre de gauche ou
...
* de la valeur de gauche dans le sous-arbre de droite!
* Puis, on retire le noeud.
::::
......@@ -287,22 +288,19 @@ arbre parent(arbre, sous_arbre)
```
arbre suppression(arbre, clé)
sous_arbre = position(arbre, clé)
si est_vide(sous_arbre) ou clé(sous_arbre) != clé
retourne vide
sinon
si est_vide(gauche(sous_arbre)) ou est_vide(droite(sous_arbre))
parent = parent(arbre, sous_arbre)
si est_vide(gauche(sous_arbre))
si droite(parent) == sous_arbre
droite(parent) = droite(sous_arbre)
sinon
gauche(parent) = droite(sous_arbre)
si est_vide(gauche(sous_arbre)) ou est_vide(droite(sous_arbre))
parent = parent(arbre, sous_arbre)
si est_vide(gauche(sous_arbre))
si droite(parent) == sous_arbre
droite(parent) = droite(sous_arbre)
sinon
si droite(parent) == sous_arbre
droite(parent) = gauche(sous_arbre)
sinon
gauche(parent) = gauche(sous_arbre)
retourne sous_arbre
gauche(parent) = droite(sous_arbre)
sinon
si droite(parent) == sous_arbre
droite(parent) = gauche(sous_arbre)
sinon
gauche(parent) = gauche(sous_arbre)
retourne sous_arbre
```
......@@ -310,11 +308,20 @@ arbre suppression(arbre, clé)
## Pour au moins deux enfants (ensemble)
```
arbre suppression(arbre, clé)
sous_arbre = position(arbre, clé) # on revérifie pas que c'est bien la clé
si est_non_vide(gauche(sous_arbre)) et est_non_vide(droite(sous_arbre))
max_gauche = position(sous_arbre, clé)
échange(clé(max_gauche), clé(sous_arbre))
suppression(sous_arbre, clé) #
```
# Exercices
1. Implémenter le pseudo-code en C (30min -> martix).
2. Implémenter l'insertion et la suppression purement en récursif (30min ->
matrix).
# Trier un tableau à l'aide d'un arbre binaire
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment