如何使用C ++中的数组为表创建哈希表表示并将k % 10
等哈希函数应用于它?我将使用链接来解决冲突(即表是一个链表的数组)。
我还要在此表中插入,搜索和删除值。
到目前为止,我有:
struct Node {
int value;
Node* next;
};
void insert(int n, Node* hashtable[]) {
int x = n % 10;
... ...
例如,对于值10
,我的哈希函数将产生0
,因此10
进入数组/哈希表的第一个槽。
如果我的值为100
,100
也会转到第一个广告位,因此10
会“指向”100
...我会编码吗?
答案 0 :(得分:0)
类似
Node* oldFront = hashtable[hashcode];
Node* newNode = new Node(value, oldFront);
hashtable[hashcode] = newNode;
这会将最近的碰撞添加到链表的前面,即它作为堆栈运行。将它添加到后面留作提问者的练习!