BUT2/DEV/DEV3.2/Controle_Machine_Blanc/Q2_Perfection/Arbre.java

55 lines
1.2 KiB
Java
Raw Normal View History

2023-12-19 19:50:02 +01:00
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;
}
}