55 lines
1.2 KiB
Java
55 lines
1.2 KiB
Java
import java.util.*;
|
|
|
|
public class Arbre{
|
|
|
|
private Noeud racine = null;
|
|
private int nbNoeud = 0;
|
|
|
|
public Arbre(int[] tableau){
|
|
for (int valeur : tableau){
|
|
this.add(valeur);
|
|
}
|
|
}
|
|
|
|
public void add(int valeur){
|
|
this.nbNoeud ++;
|
|
if (racine == null){
|
|
this.racine = new Noeud(valeur);
|
|
}
|
|
else{
|
|
Queue<Noeud> parcours = new LinkedList<>();
|
|
Noeud noeudActuel;
|
|
parcours.offer(this.racine);
|
|
do{
|
|
noeudActuel = parcours.poll();
|
|
} while(noeudActuel.add(valeur, parcours) == false);
|
|
}
|
|
}
|
|
|
|
public int[] toArray(){
|
|
if (racine == null){
|
|
return new int[0];
|
|
}
|
|
|
|
int[] resultat = new int[this.nbNoeud];
|
|
Queue<Noeud> parcours = new LinkedList<>();
|
|
int i;
|
|
|
|
parcours.offer(this.racine);
|
|
|
|
for (i=0; i<this.nbNoeud; i++){
|
|
Noeud noeud = parcours.poll();
|
|
int valeur;
|
|
if (noeud == null){
|
|
valeur = -1;
|
|
}
|
|
else{
|
|
valeur = noeud.getValeur(parcours);
|
|
}
|
|
resultat[i] = valeur;
|
|
}
|
|
|
|
return resultat;
|
|
|
|
}
|
|
} |