赞
踩
开散列概念 开散列法又叫链地址法(拉链法)。首先计算映射位置,具有相同地映射关系的值归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。
跟闭散列一样,只是二者在实现的时候,用的存储结构不同
我们写在一个自定义类域 Bucket 里面
节点结构体
- namespace Bucket
- {
- template<class K,class V>
- struct HashNode
- {
- pair<K, V> _kv;
- HashNode<K, V>* _next;
-
- HashNode(const pair<K,V>& kv)
- :_kv(kv)
- ,_next(nullptr)
- {}
- };
-
- }
哈希表类
- template<class K,class V,class Hash=HashFunc<K>>
- class HashTable
- {
- typedef HashNode<K, V> Node;
- public:
- ~HashTable();
- bool Insert(const pair<K,V>& kv);
- Node* find(const K& key);
- bool Erase(const K& key);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。