3

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

有人有示例代码吗?

谢谢,

4

2 回答 2

1

这个Github repo是......嗯......在谷歌上的第四次击中 'ruby interval tree'

于 2011-08-08T18:40:49.460 回答
1

看起来有一个叫做interval-tree,repo 在这里,https://github.com/gam3/interval-tree和这里​​ https://github.com/misshie/interval-tree。似乎是后来者制造了这件事,但 ruby​​gems 上的宝石指向第一个。很奇怪。

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

于 2015-02-26T17:47:55.553 回答