1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
class Noeud {
int valeur;
Noeud filsGauche, filsDroit;
Noeud(int v) {
valeur = v;
filsGauche = filsDroit = null;
}
}
class ArbreBinaire {
Noeud racine;
ArbreBinaire() {
racine = null;
}
void Afficher() {
AfficherNoeud(racine, 0);
}
boolean EstVide() {
if (racine == null)
return true;
else
return false;
}
void AfficherNoeud(Noeud n, int niveau) {
String decalage = "";
for (int i = 0; i < niveau; i++)
decalage += " ";
System.out.print(decalage);
if (n != null) {
System.out.println("|->" + n.valeur);
niveau++;
AfficherNoeud(n.filsGauche, niveau);
AfficherNoeud(n.filsDroit, niveau);
} else {
System.out.println("|->null");
}
}
void Ajouter(int v) {
if (racine == null)
racine = new Noeud(v);
else
AjouterNoeud(racine, v);
}
void AjouterNoeud(Noeud r, int v) {
if (r.valeur >= v) {
if (r.filsGauche == null)
r.filsGauche = new Noeud(v);
else
AjouterNoeud(r.filsGauche, v);
} else {
if (r.filsDroit == null)
r.filsDroit = new Noeud(v);
else
AjouterNoeud(r.filsDroit, v);
}
}
// et voilà où je coince. Je ne poste qu'un parcours, les autre ne présentant que de très légères modifications.
void ParcoursPrefixe() {
System.out.print("[ ");
ParcoursPrefixeNoeud(racine);
System.out.print(" ]");
}
void ParcoursPrefixeNoeud(Noeud n) {
if (n != null) {
System.out.print(n.valeur + " ");
ParcoursPrefixeNoeud(n.filsGauche);
ParcoursPrefixeNoeud(n.filsDroit);
}
}
} |
Partager