Я делаю проект, в котором мне требуется структура данных btree или b+tree. Кто-нибудь знает о существующей реализации btree или b+tree (с алгоритмами вставки, удаления, поиска)? Он должен принимать строку в качестве входных данных и формировать btree или b+tree из этих строк.
Существующая реализация Btree или B+tree в Java [закрыта]
Ответы (4)
За неимением подробностей о проблеме, которую вам нужно решить, я позволю себе предложить альтернативное решение, которое может решить вашу проблему: вместо этого используйте красное/черное дерево.
Красно-черное дерево можно рассматривать как b-дерево, как описано в Википедии. а>:
Красно-черное дерево похоже по структуре на B-дерево порядка 4, где каждый узел может содержать от 1 до 3 значений и (соответственно) от 2 до 4 дочерних указателей. В таком B-дереве каждый узел будет содержать только одно значение, соответствующее значению в черном узле красно-черного дерева, с необязательным значением до и/или после него в том же узле, оба соответствуют эквивалентному красному узлу дерева. красно-черное дерево [...]
В Java есть два встроенных класса: TreeMap. и TreeSet, предоставляющий красные/черные деревья. Ни один из них не будет принимать строку в качестве входных данных и выращивать из нее дерево, но вы можете реализовать что-то подобное «вокруг» одного из этих классов.
jdbm имеет очень надежную реализацию b+tree. Также h+tree — интересная связанная структура данных.
Мне пришлось реализовать свои собственные код.
Вы можете попробовать BTree от Electric. (страница автора здесь).