Les arbres (binaires) seront définis par une classe : un arbre peut être l’arbre vide (null) ou bien une valeur, un sous-arbre gauche et un sous-arbre droit.

class Arbre{
    public int noeud;
    public Arbre gauche;
    public Arbre droit;

    public Arbre(int noeud, Arbre gauche, Arbre droit) {
        this.noeud  = noeud;
        this.gauche = gauche;
        this.droit  = droit;
    }
}

On peut alors créer et manipuler ces arbres :

Arbre a = new Arbre(4,
            new Arbre(2,
                new Arbre(1, null, null),
                new Arbre(3, null, null)
        ),
            new Arbre(6,
                null,
                new Arbre(7, null, null)
        )
    );

// On peut tester si un arbre est vide 
System.out.println(a == null);

// On peut accéder à la valeur, et à chaque sous-arbre
System.out.println(a.valeur);
if (a.gauche == null) {
    System.out.println("OK");
}

Exercices

  1. Parcours en profondeur préfixe
  2. Parcours en profondeur postfixe
  3. Parcours en profondeur infixe
  4. Recherche dans un arbre binaire de recherche
  5. Recherche d’un élément dans un arbre
  6. Insertion dans un arbre binaire de recherche