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