当前位置:   article > 正文

C++--哈希表--开散列(哈希桶的模拟实现)--1110_c++哈希桶实现

c++哈希桶实现

开散列

开散列概念 开散列法又叫链地址法(拉链法)。首先计算映射位置,具有相同地映射关系的值归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。

哈希表开散列的模拟实现

准备工作

跟闭散列一样,只是二者在实现的时候,用的存储结构不同

我们写在一个自定义类域 Bucket 里面

节点结构体

  1. namespace Bucket
  2. {
  3. template<class K,class V>
  4. struct HashNode
  5. {
  6. pair<K, V> _kv;
  7. HashNode<K, V>* _next;
  8. HashNode(const pair<K,V>& kv)
  9. :_kv(kv)
  10. ,_next(nullptr)
  11. {}
  12. };
  13. }

哈希表类

  1. template<class K,class V,class Hash=HashFunc<K>>
  2. class HashTable
  3. {
  4. typedef HashNode<K, V> Node;
  5. public:
  6. ~HashTable();
  7. bool Insert(const pair<K,V>& kv);
  8. Node* find(const K& key);
  9. bool Erase(const K& key);
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/787108
推荐阅读
相关标签
  

闽ICP备14008679号