• [^] # Re: je ne suis pas un pro en java

    Posté par . En réponse au message [JAVA] Suppression dans un arbre binaire ordonné. Évalué à 1. Dernière modification le 08 janvier 2014 à 20:49.

    Bon bein je n'ai rien trouvé de mieux que ca :'( , projet rendu :

     // Cette méthode n'est pas la meilleure, mais faute de temps nous l'avons choisie... On recrée un arbre et on modifie les sous arbres 
     public V remove(V val) {
     // La premiere valeur de l'arbre qu'on recrée
     V premiereValeur = this.value;
     // Si la valeur a supprimer est la racine on change la racine
     if ((this.value).equals(val)) {
     // Si il y a un sous arbre gauche on prend sa valeur
     if (this.SAG != null) {
     premiereValeur = this.SAG.value;
     } // Sinon le sous arbre droit
     else {
     premiereValeur = this.SAD.value;
     }
     }
     // On stocke les valeurs actuelles de l'arbre
     ArrayList<V> listeValeurs = (ArrayList) this.values();
     // On crée notre arbre résultat
     GenericBinaryTree res = new GenericBinaryTree(premiereValeur);
     // Et on le remplit sans prendre la premiere valeur et celle a exclure
     for (V e : listeValeurs) {
     if (e != val && e != premiereValeur) {
     res.put(e);
     }
     }
     // Puis on recrée notre arbre
     this.value = premiereValeur;
     this.SAG = res.SAG;
     this.SAD = res.SAD;
     // Et on retourne la valeur sortie
     return val;
     }