Диапазон / Сегмент Дерево Рубин - PullRequest
3 голосов
/ 08 августа 2011

Я ищу реализацию диапазона или дерева сегментов в Ruby.Я не смог найти ни одного доступного образца или драгоценного камня.

У кого-нибудь есть образец кода?

Спасибо,

Ответы [ 2 ]

1 голос
/ 26 февраля 2015

Похоже, что есть один, называемый interval-tree, репо здесь, https://github.com/gam3/interval-tree и здесь https://github.com/misshie/interval-tree. Кажется, что это сделал позже, но драгоценный камень на рубиновых камнях указывает напервый.Очень странно.

Документация неверна на репо и везде.Чтобы использовать его, используйте либо 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]

Как видите, также требуется утверждениенеправильно задокументировано в репо.Какой беспорядок.

1 голос
/ 08 августа 2011
...