public class ArbreBinaire { Noeud racine; public ArbreBinaire() { this.racine = null; } // Méthode pour insérer un nouvel élément dans l'arbre private Noeud insererNoeud(Noeud racine, int valeur) { if (racine == null) { return new Noeud(valeur); } if (valeur < racine.valeur) { racine.gauche = insererNoeud(racine.gauche, valeur); } else if (valeur > racine.valeur) { racine.droit = insererNoeud(racine.droit, valeur); } return racine; } public void inserer(int valeur) { racine = insererNoeud(racine, valeur); } // Méthode de parcours préfixe private void parcoursPrefixe(Noeud racine) { if (racine != null) { System.out.print(racine.valeur + " "); parcoursPrefixe(racine.gauche); parcoursPrefixe(racine.droit); } } public void parcoursPrefixe() { parcoursPrefixe(racine); System.out.println(); } // Méthode de parcours postfixe private void parcoursPostfixe(Noeud racine) { if (racine != null) { parcoursPostfixe(racine.gauche); parcoursPostfixe(racine.droit); System.out.print(racine.valeur + " "); } } public void parcoursPostfixe() { parcoursPostfixe(racine); System.out.println(); } // Méthode de parcours infixe private void parcoursInfixe(Noeud racine) { if (racine != null) { parcoursInfixe(racine.gauche); System.out.print(racine.valeur + " "); parcoursInfixe(racine.droit); } } public void parcoursInfixe() { parcoursInfixe(racine); System.out.println(); } private void afficherArbre(Noeud racine, String espace, String direction) { if (racine != null) { System.out.println(espace + direction + racine.valeur); afficherArbre(racine.gauche, espace + "│ ", "├─"); afficherArbre(racine.droit, espace + " ", "└─"); } } public void afficherArbre() { afficherArbre(racine, "", ""); } }