Files
DEV/DEV3.2/arbre_suite/Tri/BinarySearchTree.java

68 lines
1.9 KiB
Java

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);
}
}