如何定义哈希table?

How to define hash table?

我无法理解为什么我们*使用节点作为数据类型?
*(我正在做 CS50 并且在解决问题集时它是这样的)

node *hashtable[50];

(这里的节点是指链表节点) 因为我们只是在其中存储一个链表的指针,所以将它定义为一个 char*

数组不是更好吗?
char *hashtable[50];

散列函数有冲突。当键散列到 table 已被占用的索引时,解决冲突的一种策略在那里有一个链表,您只需附加到它即可。

还有其他的collision resolution strategies, but the separate chaining strategy大概是最简单的

为了能够将散列 table 项目视为链表,除了有效负载之外,它们还需要至少有一个 next 指针。因此,这些项目需要是某种 struct node* 而不是直接的有效负载类型。