Arbres/ArbreBinaire.java
2023-12-21 10:38:38 +01:00

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, "", "");
}
}