我正在寻找一种类似于 CLR 中的红黑区间树的区间树算法,但默认情况下它支持合并区间,因此不会有任何重叠区间。
换句话说,如果您有一棵包含两个区间 [2,3] 和 [5,6] 的树,并且您添加了区间 [4,4],那么结果将是一棵仅包含一个区间 [2,6] 的树。
谢谢
更新:我正在考虑的用例是计算传递闭包。区间集用于存储后继集,因为已发现它们非常紧凑。但是,如果您将区间集表示为链表,我发现在某些情况下它们可能会变得非常大,因此找到插入点所需的时间也是如此。因此我对区间树感兴趣。此外,可能会有很多将一棵树与另一棵树合并(即一组 OR 操作) - 如果两棵树都很大,那么使用两棵树的中序游走而不是重复插入每个间隔来创建一棵新树可能会更好。