使用C ++中的数组创建哈希表表示

时间:2012-06-02 00:47:47

标签: c++ arrays hash chaining

如何使用C ++中的数组为表创建哈希表表示并将k % 10等哈希函数应用于它?我将使用链接来解决冲突(即表是一个链表的数组)。

我还要在此表中插入,搜索和删除值。

到目前为止,我有:

struct Node {
    int value;
    Node* next;
}; 

void insert(int n, Node* hashtable[]) {

    int x = n % 10;
... ...

例如,对于值10,我的哈希函数将产生0,因此10进入数组/哈希表的第一个槽。
如果我的值为100100也会转到第一个广告位,因此10会“指向”100 ...我会编码吗?

1 个答案:

答案 0 :(得分:0)

类似

Node* oldFront = hashtable[hashcode];
Node* newNode = new Node(value, oldFront);
hashtable[hashcode] = newNode;

这会将最近的碰撞添加到链表的前面,即它作为堆栈运行。将它添加到后面留作提问者的练习!