2011-11-19 24 views
6

Mam trudności ze znalezieniem struktur danych drzewa do użycia w ruby. Czy są jakieś znane osoby, na które mogę zajrzeć? Moje wymagania są proste. Chcę utworzyć drzewo (lub może to jest wykres) i znaleźć odległość między niektórymi węzłami. Na przykład może mam drzewo/wykres podobny do poniższegoStruktury danych drzewa i wykresu w rubi

 A 
/ \ 
    B-----C 
/\  \ 
D E  F 

Chcę być w stanie znaleźć odległości między węzła głównego (A) i wszystkich innych węzłów. Tak więc odległość między (A, B) powinna wynosić 1, pomiędzy (A, E) wynosi 2, itd. Nawet z węzła (A) można dostać się do (C) przez (A, B, C), długość powinna wciąż tylko 1, ponieważ istnieje bezpośrednia ścieżka od (A, C).

Czy można użyć rubinu drzewa/wykresu w rubinie?

Odpowiedz

2

Spójrz na klejnot gratr i jego documentation. Zapewnia klasy reprezentujące różne typy wykresów i podstawowe algorytmy do znajdowania odległości między ich wierzchołkami (patrz moduł Distance).