81 lines
2.2 KiB
Java
81 lines
2.2 KiB
Java
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, "", "");
|
|
}
|
|
}
|