Диапазон / Сегмент Дерево Рубин
Я ищу реализацию диапазона или дерева сегментов в Ruby. Я не мог найти образец или драгоценный камень в наличии.
У кого-нибудь есть пример кода?
Спасибо,
2 ответа
Там, кажется, один называется 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]
Как видите, в репо также неправильно задано заявление require. Что за беспорядок