Je fais un projet dans lequel j'ai besoin d'une structure de données btree ou b + tree. Est-ce que quelqu'un connaît une implémentation existante de btree ou b + tree (avec des algorithmes d'insertion, de suppression et de recherche)? Il doit accepter la chaîne en tant qu'entrée et la forme btree ou b + tree de ces chaînes.
En l'absence de détails sur le problème que vous devez résoudre, je vais me permettre de suggérer une solution alternative qui pourrait résoudre votre problème: utilisez plutôt un arbre rouge/noir.
L'arbre rouge/noir peut être considéré comme un arbre binaire, comme expliqué sur Wikipedia :
La structure d'un arbre rouge-noir est similaire à celle d'un arbre B d'ordre 4, chaque nœud pouvant contenir entre 1 et 3 valeurs et (en conséquence) entre 2 et 4 pointeurs enfants. Dans un tel arbre B, chaque nœud ne contiendra qu'une valeur correspondant à la valeur d'un nœud noir de l'arborescence rouge-noir, avec une valeur facultative avant et/ou après dans le même nœud, les deux correspondant à un nœud rouge équivalent du arbre rouge-noir [...]
Java a deux classes intégrées, TreeMap et TreeSet , fournissant des arbres rouges/noirs. Aucune de ces méthodes ne prendra une chaîne en entrée et ne fera croître une arborescence, mais vous pourrez peut-être implémenter quelque chose de similaire "autour" de l'une de ces classes.
jdbm a une implémentation très solide de b + tree. Également h + tree qui est une structure de données liée intéressante.
J'ai eu à mettre en œuvre mon propre et open source le code .
Vous pouvez essayer BTree de Electric ( page de l'auteur ici ).