点击上方蓝字关注我,我们一起学编程
欢迎小伙伴们分享、转载、私信、赞赏
微信搜索:编程笔记本
微信搜索:编程笔记本
微信搜索:编程笔记本
是的,在面试深信服的时候,面试官让我 10min 手写哈希表(/微笑)。没错,我没写出来,于是我自己花了 20*10min 自己写了一个简单的哈希表出来。在这里贴出来,小伙伴可以提提意见,交流一波~
#include <bits/stdc++.h>
using namespace std;
#define MAXSIZE 10 // 哈希值
#define UNIONSIZE 100 // 共用体的字符长度
/* 哈希表底层链表节点 */
template<typename K, typename V>
struct Node {
K key;
V value;
struct Node* next;
};
/* 用于计算哈希值的共用体 */
template<typename K>
union Union {
K key;
char ch[UNIONSIZE];
Union(K _key) : key(_key) {
}
};
/* 哈希表类 */
template<typename K, typename V>
class HashTable {
private:
Node<K, V>* node[MAXSIZE]; // 底层链表
public:
HashTable(); // 构造函数
int hash(const K key