我正在寻找Ruby中的范围或段树实现。我找不到任何样品或宝石。
有没有人有示例代码?
谢谢,
答案 0 :(得分:1)
这Github repo是......嗯...... the fourth hit down on Google for 'ruby interval tree'。
答案 1 :(得分:1)
看起来有一个叫interval-tree
,回复就在这里,https://github.com/gam3/interval-tree和https://github.com/misshie/interval-tree。似乎是后者制作了这个东西,但rubygems上的宝石指向了第一个。很奇怪。
回购和其他地方的文档都是错误的。要使用它,请使用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]
如您所见,repo中也错误地记录了require语句。真是一团糟。