我试图为此用例找到正确的数据结构,但显然没有正确的搜索术语。
我有以下结构的许多副本:
struct Item {
var start: Int
var end: Int
var type: Int
}
Item
中表示的范围不重叠且连续。
我需要能够:
Item
索引中存在Int
Item
Item
的集合将定期更新,作为完整的重建或附加到最后。中间集合插入可能非常罕见,无法从头开始重建。
任何人都可以请我指出一个合适的结构或正确的术语,让我继续研究自己吗?
答案 0 :(得分:0)
如果项目不重叠且连续,则不需要结束(如下次启动所暗示的那样),并且您可以使用您用于排序数据的任何数据结构,例如:树木或清单。
在一般情况下(=有重叠),你可能会使用interval tree。