protected void insererNoeudAB(NoeudArbre<E> noeud) {
        boolean stop = false;
        NoeudArbre<E> pivot = root;
        NoeudArbre<E> pivotPere = NIL;
        // l'arbre est il vide ?
        if (root == NIL) {
            root = noeud;
        } else {
            // tant qu'on a pas atteint une feuille, on cherche la feuille où on doit placer le pivot.
            while (!stop) {
                pivotPere = pivot;
                //Doit on insérer à droite ou à gauche du pivot ?
                if (noeud.clef.compareTo(pivot.clef) < 0) {
                    // on insère à gauche
                    pivot = pivot.filsGauche;
                    // on a atteint une feuille
                    if (pivot == NIL) {
                        pivotPere.filsGauche = noeud;
                        noeud.pere = pivotPere;
                        stop = true;
                    }
                } else {
                    // on insère à droite
                    pivot = pivot.filsDroit;
                    // on a atteint une feuille
                    if (pivot == NIL) {
                        pivotPere.filsDroit = noeud;
                        noeud.pere = pivotPere;
                        stop = true;
                    }
                }
            }
        }
    }