Szukam dojrzałej implementacji M-Tree [zamknięte]
Szukam dojrzałej implementacji M-Tree w Javie - lub nawet implementacji DOWOLNEGO drzewa M (oprócz jedynej znalezionej implementacji)
http://en.wikipedia.org/wiki/M-tree
Dla tych, którzy nie słyszeli o drzewie M (jak ja 2 dni temu), M-Tree jest drzewem wyszukiwania, które może pobrać „n-najbliższe wpisy” lub „wszystkie wpisy w odległości d”, gdy używane są klawisze można umieścić w „przestrzeni metrycznej” (M oznacza Metric).
Znalazłem jedną online pod adresem:https://github.com/erdavila/M-Tree
Ta implementacja jest wykonalna, jeśli to konieczne, ale nie jest Serializable, nie zapewnia metody „zawiera ()”, a obecnie rzuca błąd asercji (który zorientowałem się, jak naprawić).
Jeśli istnieje nieco bardziej dopracowana implementacja, chciałbym wiedzieć, ponieważ ta struktura danych wydaje się bardzo użyteczna i chciałbym znaleźć kanoniczną implementację.
--- Dodano więcej informacji (w celu powstrzymania tego pytania przed zamknięciem) ---
Moim celem końcowym jest mapa, w której metoda „public Value get (Key)” zwraca „najbliższą” wartość, nawet jeśli nie ma dokładnego dopasowania klucza. Ponieważ używam Keys, które są zdefiniowane w przestrzeni metrycznej, szukam w MTree do obsługi „najbliższej” części tego problemu.
Powyższa implementacja nie zadziała, ponieważ (1) nie powiedzie się, gdy ten sam klucz zostanie umieszczony dwa razy, (2) nie pozwoli mi usunąć klucza, i (3) nie pozwoli mi na testowanie jeśli klucz został już wstawiony.