web-dev-qa-db-fra.com

Implémentation existante de Btree ou B + tree en Java

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.

22
rohit

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.

15
Jørn Schou-Rode

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.

12
Kevin Day

J'ai eu à mettre en œuvre mon propre et open source le code .

5
Justin

Vous pouvez essayer BTree de Electric ( page de l'auteur ici ).

0
Charles Goodwin