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