fin du cotrole blanc dev32
This commit is contained in:
55
DEV/DEV3.2/Controle_Machine_Blanc/Q2_Perfection/Arbre.java
Normal file
55
DEV/DEV3.2/Controle_Machine_Blanc/Q2_Perfection/Arbre.java
Normal file
@@ -0,0 +1,55 @@
|
||||
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;
|
||||
|
||||
}
|
||||
}
|
||||
24
DEV/DEV3.2/Controle_Machine_Blanc/Q2_Perfection/Main.java
Normal file
24
DEV/DEV3.2/Controle_Machine_Blanc/Q2_Perfection/Main.java
Normal file
@@ -0,0 +1,24 @@
|
||||
public class Main{
|
||||
public static void main(String[] args){
|
||||
int[] tableauEntier = new int[args.length];
|
||||
int i;
|
||||
try{
|
||||
for (i=0; i<args.length; i++){
|
||||
tableauEntier[i] = Integer.parseInt(args[i]);
|
||||
if (tableauEntier[i] < 0){
|
||||
throw new NumberFormatException("Erreur : l'entier naturel saisis est negatif "+tableauEntier[i]);
|
||||
}
|
||||
}
|
||||
Arbre arbre = new Arbre(tableauEntier);
|
||||
|
||||
int[] tableauArbre = arbre.toArray();
|
||||
for (i=0; i<tableauArbre.length; i++){
|
||||
System.out.print(tableauArbre[i] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
catch(NumberFormatException e){
|
||||
System.out.println("argument invalide");
|
||||
}
|
||||
}
|
||||
}
|
||||
31
DEV/DEV3.2/Controle_Machine_Blanc/Q2_Perfection/Noeud.java
Normal file
31
DEV/DEV3.2/Controle_Machine_Blanc/Q2_Perfection/Noeud.java
Normal file
@@ -0,0 +1,31 @@
|
||||
import java.util.*;
|
||||
|
||||
public class Noeud{
|
||||
private Noeud gauche = null;
|
||||
private Noeud droite = null;
|
||||
private int valeur;
|
||||
|
||||
public Noeud(int valeur){
|
||||
this.valeur = valeur;
|
||||
}
|
||||
|
||||
public boolean add(int valeur, Queue<Noeud> parcours){
|
||||
if (this.gauche == null){
|
||||
this.gauche = new Noeud(valeur);
|
||||
return true;
|
||||
}
|
||||
if (this.droite == null){
|
||||
this.droite = new Noeud(valeur);
|
||||
return true;
|
||||
}
|
||||
parcours.offer(this.gauche);
|
||||
parcours.offer(this.droite);
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getValeur(Queue<Noeud> parcours){
|
||||
parcours.offer(this.gauche);
|
||||
parcours.offer(this.droite);
|
||||
return this.valeur;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user