【发布时间】:2011-10-03 19:44:53
【问题描述】:
我在选择正确的数据结构时遇到问题,这些是要求:
- 我必须能够插入和删除元素
- 我还必须能够获取集合中元素的索引(集合中的顺序)
- 元素具有唯一的标识符号
- 我可以使用任何标准对元素进行排序(如有必要)
排序并不是必须的,重要的是获取元素的索引,不管内部如何实现,但无论如何我认为最好的方法是排序。 元素的索引是集合内的顺序。所以必须使用某种顺序。当我删除一个元素时,从该元素到最后的其他元素会更改它们的顺序/索引。
第一种方法是使用链表,但我不想要 O(n)。 我还考虑过使用和排序字典,这将为查找/插入/删除提供 O(log n),不是吗? 有更好的方法吗?我知道 TRIE 会为常见操作提供 O(1),但我不知道如何获取元素的索引,我必须遍历 trie 并给出 O(n),我错了吗?
【问题讨论】: