1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| public void inserer(Object o,Noeud n){//il faut ok à false pour le premier passage et appeler sur la racine
Object w;
Noeud tab[];
int compare;
boolean estInserer=false;
boolean ok = false;
int size=n.cle.size();
for (int i = size-1 ; i>=0 ; i--){
w=n.cle.get(i);
if (n.isFeuille()==true){
compare=compareTo(w,o);
if (compare>=0){
if(size>=this.Taille){
//(this.Taille+1)/2;
} else { //ICI
n.cle.add(i+1,o);
System.out.println(n);
estInserer=true;
ok=true;
break;
}
}
} else {
compare=compareTo(w,o);
System.out.println(compare);
if (compare>=0) {
tab=n.getFils();
ok=true;
System.out.println(tab[1+i]);
inserer(o,tab[1+i]);
}
}
}
if (!ok){ //quand c'est jamais superieur ou egal
tab=n.getFils();
ok=true;
inserer(o,tab[0]);
}
} |