Exemple #1
0
  /**
   * Renvoie la taille de l'arbre
   *
   * @return
   */
  public int taille() {

    if (this.isLeaf()) return 1;

    if (gauche != null && droit != null) return 1 + gauche.taille() + droit.taille();
    else if (gauche != null) return 1 + gauche.taille();
    else return 1 + droit.taille();
  }
Exemple #2
0
  /**
   * Ordre total A <bin B si et seulement si taille(A.gauche) < taille(B.gauche) ou taille(A.gauche)
   * = taille(B.gauche) et (A.gauche < B.gauche ou (A.gauche = B.gauche et A.droit < B.droit)
   */
  @Override
  public int compareTo(Abub arg0) {
    if (this.equals(arg0)) return 0;

    if (this == null) return -1;

    if (arg0 == null) return 1;

    if (this.taille() < arg0.taille()) return -1;
    else if (this.taille() == arg0.taille()) {
      if (this.gauche != null && arg0.gauche != null) {
        if (this.gauche.compareTo(arg0.gauche) == -1) return -1;
      }
    }
    if (this.gauche != null && arg0.gauche != null) {
      if (this.gauche.compareTo(arg0.gauche) == 0)
        if (this.droit != null && arg0.droit != null)
          if (this.droit.compareTo(arg0.droit) == -1) return -1;
    }
    return 1;
  }