对所需操作集合最佳的数据结构

时间:2017-06-18 20:50:54

标签: c algorithm data-structures dataset

我正在寻找这些伪代码操作的最佳数据结构:

add/update(key, node-content);
node=walk/iterate();
delete(node);

我会做一个哈希表,但是不可能以有效的方式遍历/遍历它(需要检查所有桶)。目前,我认为rbtree,但我的怀疑是围绕这样一个事实,即我需要在每次添加/删除操作时重新平衡它,保持全局树互斥量大概......任何人都可以分享一些专业知识,最佳选择是什么?

更新我想扩展所搜索数据结构的使用范围,因为它会澄清到目前为止所提出的问题。

结构最多只有几百个节点 - 所以不是那么大。最常见的操作是walk(),其中每个节点都是轮流读取的,顺序无关紧要。 walk()每秒可以发生一千次。到目前为止,链表或甚至数组都可以。

第二个最常见的操作是更新(node-key,node-content)。这是需要高效搜索的地方。该操作可能每秒发生数百次。因此,哈希表很有吸引力。

有时会添加一个节点 - 当update()找不到现有节点时 - 或删除。 Add() / delete()很少发生,例如每天一次 - 因此这些操作的成本无关紧要。

UPDATE2 我认为这是对相关结构的一个非常好的回顾。目前我倾向于skiplist

0 个答案:

没有答案