2011-11-19 5 views
6

루비에서 사용할 트리 데이터 구조를 찾는 데 어려움을 겪고 있습니다. 내가 볼 수있는 유명한 사람들이 있습니까? 내 요구 사항은 간단합니다. 나는 나무 (또는 아마도 그것은 그래프)를 만들고 몇몇 노드 사이의 거리를 찾고 싶다. 예를 들어, 나는 다음과 같은루비의 트리 및 그래프 데이터 구조

내가 루트 노드 (A)와 모든 다른 노드 사이의 거리를 찾을 수 있도록하려면
 A 
/ \ 
    B-----C 
/\  \ 
D E  F 

같은 트리/그래프가있을 수 있습니다. 따라서 (A, B) 사이의 거리는 1이어야합니다. (A, E)는 2 등입니다. 노드 (A)에서 (A, B, C)를 통해 (C) (A, C)로부터의 직접 경로가 있으므로 여전히 1이됩니다.

루비에서 사용할 수있는 트리/그래프 젬이 있습니까?

답변

2

gratr 보석과 그 documentation을 살펴보십시오. 다양한 그래프의 종류를 나타내는 클래스와, 정점 간 거리를 구하는 기본적인 알고리즘을 제공합니다 (Distance 모듈 참조).