2011-08-08 14 views
2

Rubyで範囲またはセグメントツリーの実装を探しています。私はサンプルや宝石を見つけることができませんでした。範囲/セグメントツリーRuby

誰かがサンプルコードを持っていますか?

おかげで、

答えて

1

interval-treeと呼ばれるものがあります。レポはこちら、https://github.com/gam3/interval-tree、ここではhttps://github.com/misshie/interval-treeです。それは後でそれを作った人のようですが、ルビー宝石の宝石は最初のものを指しています。非常に奇妙な。

レポや他のすべての文書は間違っています。使用するには、IntervalTree::InclusiveTree.newまたはIntervalTree::ExclusiveTree.newのいずれかを使用します。これは奇妙なところではどこにも書かれていません。また、不思議なことに、これを修正するためにgithubリポジトリに問題を追加することはできません。私は、コミュニティによって維持されることができる新しいバージョンを作成し、作成することを検討しています。

とにかく、ここにあなたがそれを使用する方法である:

require "interval-tree" 

itv = [(0...3), (1...4), (3...5),] 
t = IntervalTree::Tree.new(itv) 
p t.search(2) => [0...3, 1...4] 
p t.search(1...3) => [0...3, 1...4, 3...5] 

ご覧のとおり、また、インクルード文が誤ってレポに記載されてが必要です。何が混乱している。