我正在寻找 Ruby 中的范围或段树实现。我找不到任何可用的样品或宝石。
有人有示例代码吗?
谢谢,
这个Github repo是......嗯......在谷歌上的第四次击中 'ruby interval tree'。
看起来有一个叫做interval-tree
,repo 在这里,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 语句。真是一团糟。