Suppression dans un arbre Binaire
Fermé
Odenelle
Messages postés
102
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
18 mars 2016
-
Modifié par Odenelle le 4/01/2014 à 14:09
Odenelle Messages postés 102 Date d'inscription samedi 19 novembre 2011 Statut Membre Dernière intervention 18 mars 2016 - 4 janv. 2014 à 19:41
Odenelle Messages postés 102 Date d'inscription samedi 19 novembre 2011 Statut Membre Dernière intervention 18 mars 2016 - 4 janv. 2014 à 19:41
A voir également:
- Suppression dans un arbre Binaire
- Forcer la suppression d'un fichier - Guide
- Codage binaire - Guide
- Suppression page word - Guide
- Suppression cookies - Guide
- Suppression compte gmail - Guide
1 réponse
Odenelle
Messages postés
102
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
18 mars 2016
20
4 janv. 2014 à 19:41
4 janv. 2014 à 19:41
J'ai amélioré remove (du moins je crois)
// Supprime un noeud a partir de sa valeur
public void remove(V val) {
GenericBinaryTree<V> noeudConcerne, pereNoeud;
// Le noeud concerné est celui qu'on veut supprimer
noeudConcerne = this.trouverNoeud(val);
// Si le noeud concerné a un sous arbre gauche
if (noeudConcerne.SAG != null) {
// pereNoeud est le pere du maximum du SAG du noeud
pereNoeud = this.SAG.perMax();
System.out.println("coucou1");
// Si il est nul alors
if (pereNoeud == null) {
this.value = this.SAG.value;
this.SAG = this.SAG.SAG;
System.out.println("coucou2");
} else {
this.value = pereNoeud.SAD.value;
pereNoeud.SAD = pereNoeud.SAD.SAG;
System.out.println("coucou3");
}
}
if (noeudConcerne.SAD != null) {
// pereNoeud est le pere du minimum du SAD du noeud
pereNoeud = this.SAD.perMin();
System.out.println("coucou4");
// Si il est nul alors
if (pereNoeud == null) {
System.out.println("coucou5");
this.value = this.SAD.value;
this.SAD = this.SAD.SAD;
} else {
System.out.println("coucou6");
this.value = pereNoeud.SAG.value;
pereNoeud.SAG = pereNoeud.SAG.SAD;
}
}
}