【发布时间】:2013-04-07 11:21:11
【问题描述】:
我过去做过一个关于哈希表的小练习,但用户给出了数组大小,结构也是这样的(所以用户每次都给出一个数字和一个单词作为输入)
struct data
{
int key;
char c[20];
};
所以这很简单,因为我知道数组大小,而且用户说他将提供多少项作为输入。我的做法是
- 散列用户给我的密钥
- 在数组中找到位置数组[hashed(key)]
- 如果它是空的,我会把数据放在那里
- 如果不是,我会把它放在我能找到的下一个空闲位置。
但现在我必须制作倒排索引,并且我正在重新搜索,以便为它制作一个哈希表。所以单词将从大约 30 个 txt 中收集,它们会非常多。 那么在这种情况下,数组应该有多长?我怎样才能散列单词?我应该使用带有开放寻址或链接的hasing。练习说如果我们在网上找到它,我们可以使用哈希表。但我更喜欢自己理解和创造它。任何线索都会帮助我:)
在这个练习(使用哈希表的倒排索引)中,结构看起来像这样。 数据类型是我将创建的哈希表的类型。
struct posting
{
string word;
posting *next
}
struct data
{
string word;
posting *ptrpostings;
data *next
};
【问题讨论】:
-
查看聊天菜单 :)