数据结构的题,已知哈希表长14,关键字序列为24,29,45,18,10,20,21,35,3,28,38,9,

数据结构的题,已知哈希表长14,关键字序列为24,29,45,18,10,20,21,35,3,28,38,9,5,40,哈希函数为H(k)=k mod 11。请分别采用线性探测法和链地址法处理冲突,将关键字依次存入哈希表中,并求查找成功和不成功时的平均查找长度。希望可以重点讲一下查找不成功的平均查找长度。谢谢

#include <iostream>
using namespace std;
class node {
public:
int key;
node * next;
node()
{
key = 0;
next = NULL;
}
node(int n)
{
key = n;
next = NULL;
}
};
class hashlist {
public:
node *p;
hashlist()
{
p = NULL;
}
hashlist(int n)
{
p = new node[n];
for (int i = 0; i < n; i++)
{
(p + i)->key = i;
}
}
};
int main()
{
int k;
hashlist hash(7);
node *temp;
while (1)
{
cout << "please input key:";
cin >> k;
temp = hash.p + k % 7;
while (temp->next != NULL)
{
temp = temp->next;
}
temp->next = new node(k);
}
return 0;
}
这个仅仅有存储功能,有问题欢迎追问追问

是做题目,不要算法

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-01
这个是太复杂了,真不会