范围/段树Ruby

时间:2011-08-08 18:35:05

标签: ruby segment-tree range-tree

我正在寻找Ruby中的范围或段树实现。我找不到任何样品或宝石。

有没有人有示例代码?

谢谢,

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

看起来有一个叫interval-tree,回复就在这里,https://github.com/gam3/interval-treehttps://github.com/misshie/interval-tree。似乎是后者制作了这个东西,但rubygems上的宝石指向了第一个。很奇怪。

回购和其他地方的文档都是错误的。要使用它,请使用IntervalTree::InclusiveTree.newIntervalTree::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语句。真是一团糟。