Я ищу алгоритм дерева интервалов, аналогичный дереву с красным-черным интервалом в среде CLR, но который поддерживает слияние интервалов по умолчанию, чтобы никогда не было перекрывающихся интервалов.
Другими словами, если у вас есть дерево, содержащее два интервала [2,3] и [5,6], и вы добавили интервал [4,4], результатом будет дерево, содержащее только один интервал [2,6 ].
Спасибо
Обновление: пример использования, который я рассматриваю, вычисляет переходное закрытие. Наборы интервалов используются для хранения наборов преемников, поскольку они оказались довольно компактными. Но если вы представляете интервальные множества как связанный список, я обнаружил, что в некоторых ситуациях они могут стать довольно большими и, следовательно, время, необходимое для поиска точки вставки. Отсюда мой интерес к интервальным деревьям. Также может быть довольно много слияния одного дерева с другим (т.е. Операция set OR) - если оба дерева являются большими, то может быть лучше создать новое дерево, используя походные пути обоих деревьев, а не повторные вставки каждого интервала.