具有非不同键的直接地址表

时间:2012-05-04 14:16:22

标签: c++ c c++11 hashtable associative-array

我正在研究一个练习题,涉及设计一个直接地址表,可能有非不同的键。限制是INSERT,DELETE和SEARCH应该在O(1)时间内运行; arguments是指向set对象的指针。

一个明显的解决方案是使用链接,表条目指向链表的头部(可能为NULL)。有了这样的链接INSERT和DELETE肯定会在O(1)时间内运行,但SEARCH不会...... 任何建议,将不胜感激。

1 个答案:

答案 0 :(得分:1)

研究STL关联容器std::unordered_setstd:unordered_mapstd::unordered_multisetstd::unorderd_multimap的设计,具体取决于您是否要存储{unique,non-unique}和{键,键值}。如果您没有C ++ 11编译器(例如MSVC ++> = 2010或gcc> = 4.4),您可以使用Boost.Unordered

<强>更新 如果您专门寻找C库:请查看http://attractivechaos.wordpress.com/2008/09/02/implementing-generic-hash-library-in-c/