2012-03-28 23 views
10

Czy istnieje biblioteka Java z drzewem binarnym, z której mogę korzystać? Nie czekam na testowanie i wdrażanie własnego.Poszukuję biblioteki Java, która zaimplementowała drzewo binarne

+0

Do czego potrzebne jest drzewo binarne? – Bernard

+4

Zasadniczo java.util.TreeSet jest czerwono-czarnym drzewem binarnym, które jest zbalansowanym drzewem binarnym wyszukiwania. Zależy jednak od tego, czego potrzebujesz. –

+0

Tak - drzewo binarne, które chciałbym przechowywać, nie musi być zbalansowane. Poza tym nie jest to binarne drzewo wyszukiwania. Poszukuję podstawowej implementacji, w której każdy węzeł ma lewe i prawe dziecko. – Esey

Odpowiedz

9

Standardowy interfejs API języka Java zawiera tylko biblioteki uniwersalne i nietrywialne do wdrożenia. Podstawowym drzewo jest trywialny do wdrożenia:

class BinaryTree { 
    BinaryTree left; 
    BinaryTree right; 
    Object value; 
} 

nietrywialne drzewa nie są powszechnie przydatne: albo są one potrzebne jako część modelu danych aplikacji, która jest lepiej modelowane za pomocą klas konkretnych domen (składnik ma-a lista podkomponentów) lub są używane jako część określonego algorytmu. Algorytmy zwykle wymagają określonej struktury od węzłów (np. Koloru lub ciężaru węzła potrzebnego do utrzymania zrównoważonego drzewa), więc ogólny węzeł drzewa ma niewielki sens.

+0

Dzięki @Joni - to ma sens. Sądzę, że wziąłem to za pewnik, że musi tam być - ale tak nie jest. Zaimplementuję go dla mojej aplikacji. – Esey

+0

Masz rację z podstawowym drzewem, ale na pewno istnieją części niebanalnej implementacji BST, które są tak uniwersalnie użyteczne, jak cokolwiek innego, jak znalezienie najniższego poziomu i wstawianie/usuwanie (i równoważenie), nie sądzisz? – snydergd

0

Jest realizacja próbka na tej stronie tutaj: -around w dolnej części strony lub SO-

http://cslibrary.stanford.edu/110/BinaryTrees.html

+1

Szukam testowanej biblioteki. – Esey

+1

@Esey, a następnie napisz testy samemu ... –

+0

@Bart - Może być innym razem :) - Ja też mógłbym to zaimplementować - ale wdrażam aplikację, która "używa" drzewek binarnych i byłoby miło, gdybym nie musicie się martwić o ten drugi kawałek. Dziękuję za odpowiedź. – Esey

5

Co z http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html

Implementacja NavigableMap na podstawie czerwonego drzewa. Mapa jest sortowana według naturalnej kolejności jej kluczy lub komparatora dostarczonego w czasie tworzenia mapy, w zależności od tego, który konstruktor jest używany.

+2

To by nie działało dla mnie. Szukam podstawowego drzewa binarnego. – Esey

Powiązane problemy