fin de arbre suite
This commit is contained in:
67
DEV3.2/arbre_suite/Tri/BinarySearchTree.java
Normal file
67
DEV3.2/arbre_suite/Tri/BinarySearchTree.java
Normal file
@@ -0,0 +1,67 @@
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class BinarySearchTree {
|
||||
|
||||
private Node root; // Racine de l'arbre
|
||||
|
||||
// Méthode d'insertion
|
||||
public void insert(double value) {
|
||||
root = insertRec(root, value);
|
||||
}
|
||||
|
||||
private Node insertRec(Node node, double value) {
|
||||
if (node == null) {
|
||||
return new Node(value);
|
||||
}
|
||||
if (value < node.value) {
|
||||
node.left = insertRec(node.left, value);
|
||||
} else if (value > node.value) {
|
||||
node.right = insertRec(node.right, value);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
// Parcours en ordre croissant
|
||||
public List<Double> inOrderTraversal() {
|
||||
List<Double> sortedList = new ArrayList<>();
|
||||
inOrderRec(root, sortedList);
|
||||
return sortedList;
|
||||
}
|
||||
|
||||
private void inOrderRec(Node node, List<Double> sortedList) {
|
||||
if (node != null) {
|
||||
inOrderRec(node.left, sortedList);
|
||||
sortedList.add(node.value);
|
||||
inOrderRec(node.right, sortedList);
|
||||
}
|
||||
}
|
||||
|
||||
// Redéfinir la méthode toString pour afficher les éléments triés
|
||||
@Override
|
||||
public String toString() {
|
||||
return inOrderTraversal().toString();
|
||||
}
|
||||
|
||||
// Main pour le test
|
||||
public static void main(String[] args) {
|
||||
if (args.length == 0) {
|
||||
System.out.println("Veuillez fournir une liste de réels en ligne de commande.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Créer un arbre binaire de recherche et y insérer les éléments
|
||||
BinarySearchTree bst = new BinarySearchTree();
|
||||
for (String arg : args) {
|
||||
try {
|
||||
double value = Double.parseDouble(arg);
|
||||
bst.insert(value);
|
||||
} catch (NumberFormatException e) {
|
||||
System.out.println("Valeur invalide ignorée : " + arg);
|
||||
}
|
||||
}
|
||||
|
||||
// Afficher les éléments triés
|
||||
System.out.println("Éléments triés : " + bst);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user