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
|
public abstract class ArBin<T> {
public abstract T racine();
public abstract ArBin<T> ad(); //sous-arbre droit
public abstract ArBin<T> ag(); //sous-arbre gauche
public abstract boolean estVide();
public abstract T zero();
public abstract T somme(T n1,T n2);
public T sommeGauche(ArBin<T> g) {
if (g == null) return zero(); // Est vide à gauche
T s = g.racine();
s = somme(s, sommeGauche(g.ag()));
s = somme(s, sommeDroite(g.ad()));
return s;
}
public T sommeDroite(ArBin<T> d) {
if (d == null) return zero(); // Est vide à droite
return somme(sommeGauche(d.ag()),sommeDroite(d.ad()));
}
} |
Partager