ajout arbres
This commit is contained in:
commit
2d242054d7
80
ArbreBinaire.java
Normal file
80
ArbreBinaire.java
Normal file
@ -0,0 +1,80 @@
|
||||
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, "", "");
|
||||
}
|
||||
}
|
30
Main.java
Normal file
30
Main.java
Normal file
@ -0,0 +1,30 @@
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
ArbreBinaire arbre = new ArbreBinaire();
|
||||
|
||||
// Insérer des éléments dans l'arbre
|
||||
arbre.inserer(50);
|
||||
arbre.inserer(30);
|
||||
arbre.inserer(70);
|
||||
arbre.inserer(20);
|
||||
arbre.inserer(40);
|
||||
arbre.inserer(60);
|
||||
arbre.inserer(80);
|
||||
|
||||
// Afficher l'arbre
|
||||
System.out.println("Affichage de l'arbre :");
|
||||
arbre.afficherArbre();
|
||||
|
||||
// Parcours préfixe
|
||||
System.out.println("Parcours préfixe:");
|
||||
arbre.parcoursPrefixe();
|
||||
|
||||
// Parcours postfixe
|
||||
System.out.println("Parcours postfixe:");
|
||||
arbre.parcoursPostfixe();
|
||||
|
||||
// Parcours infixe
|
||||
System.out.println("Parcours infixe:");
|
||||
arbre.parcoursInfixe();
|
||||
}
|
||||
}
|
9
Noeud.java
Normal file
9
Noeud.java
Normal file
@ -0,0 +1,9 @@
|
||||
public class Noeud {
|
||||
int valeur;
|
||||
Noeud gauche, droit;
|
||||
|
||||
public Noeud(int valeur) {
|
||||
this.valeur = valeur;
|
||||
this.gauche = this.droit = null;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user