我需要一个数据结构,它将非重叠范围(例如8..15
,16..19
)映射到指向结构的指针。
我需要能够查找该范围内的任何元素并检索该指针。例如:
structure[8..15] = 0x12345678;
structure[16..19] = 0xdeadbeef;
structure[7]; // => NULL
structure[12]; // => 0x12345678
structure[18]; // => 0xdeadbeef
我目前正在考虑使用二叉搜索树。由于范围永远不会重叠,我可以在对数时间内相对轻松地搜索索引。
但是,我想知道是否有任何数据结构更适合这种情况。我需要能够有效地插入、删除和查找。在 BST 中,所有这些操作都是 O(log n),但我想知道是否有任何更快的方法。