问题描述
CHAINED-HASH-INSERT(T,x)
Insert x at head of list T[h(x.key)]
CHAINED-HASH-SEARCH(T,k)
Search for an element with key k in list T[h(k)]
CHAINED-HASH-DELETE(T,x)
Delete x from the list T[h(x.key)]
我现在正在研究哈希表,但我无法理解这个问题附带的伪代码中 x 的确切含义。这里实现了三个哈希表字典函数,用于从表中插入、搜索和删除元素。 现在我明白了 x.key 的意思,但问题是,但必须插入表中的数据中的 x 到底是什么。请你帮我举个例子。我目前正在尝试使用 C 来实现它。 h() 也是哈希函数。
解决方法
在实践中,它是键/值对的 struct
。 x.key
是用于散列的键。该值可能命名为 x.value
或 x.data
或类似名称。在某处必须有 x
类型的定义,但它的名称对于理解算法和实现它并不重要。您可以使用 void 指针来表示值,以便任何类型的数据都可以存储在哈希表中。
所以 x
表示存储在哈希表的冲突解决列表中的数据结构,也就是存储键和值的位置。
更新
我找到了这个看起来很熟悉的参考资料,它解释了这一切:Introduction to Algorithms