闭散列法是基于数组的散列表构造方法。设一个散列表采用闭散列法构造,散列函数采用除留余数法H
(1)设计散列表的类。
(2)设计在散列表中搜索具有指定关键码值表项的算法.
(3)设计在散列表中册除具有指定关键码值表项的算法.
(4)设计在散列表中插人具有指定关键码值表项的算法。
(5)设计出一组关键码值建立散列表的算法。
(6)设计输出散列表的算法。
(7)求搜索成功时的平均搜紫长度的算法。
(8)求搜索不成功时的平均搜索长度的算法。
(1)设计散列表的类。
(2)设计在散列表中搜索具有指定关键码值表项的算法.
(3)设计在散列表中册除具有指定关键码值表项的算法.
(4)设计在散列表中插人具有指定关键码值表项的算法。
(5)设计出一组关键码值建立散列表的算法。
(6)设计输出散列表的算法。
(7)求搜索成功时的平均搜紫长度的算法。
(8)求搜索不成功时的平均搜索长度的算法。
第1题
A、O(1)
B、O(n)
C、O(log2n)
D、O(n2)
第2题
(1)散列表的大小应该是多少?
(2)如果散列函数采用除留余数法,写出散列两数的定义;
(3)若已有的8个记录分别为(58,87,38,95,49,75,64,47),依次将它们存放到表中;
(4)计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。
第3题
设散列表容量为11且初始为空,采用除余法确定散列地址,采用单向平方试探法排解冲突,采用懒惰策略实现删除操作。
a)若通过put()接口将关键码(2012,10,120,175,190,230)依次插入中,试给出此时各桶单元的内容;
b)若再执行remove(2012),试给出此时各桶单元的内容;
c)若继续执行get(2012),会出现什么问题?为什么?
d)为避免此类问题的出现,可以采取什么措施?试给出至少两种方案。
第4题
101003245581263292004000
(1)散列函数采用除留余数法,用%m(取模运算)将各关键码映像到表中。请指出每一个产生冲突的关键码可能产生多少次冲突。
(2)散列函数采用先将关键码各位数字折叠相加,再用%m将相加的结果映像到表中的办法。请指出每一个产生冲突的关键码可能产生多少次冲突。
第5题
A.哈希函数构造的越复杂越好,因为这样随机性好,冲突小
B.除留余数法是所有哈希函数中最好的
C.不存在特别好与坏的哈希函数,要视情况而定
D.若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单地将该元素删去即可
第6题
第7题
此题为判断题(对,错)。
第8题
此题为判断题(对,错)。
第9题
y为整数),这些函数能够当作散列函数吗(即对于插入和查找,散列程序能正常工作吗)?如果能够,它是一个好的散列函数吗?请说明理由。设函数random(m)返回一个0到m-1之间的随机整数(包括0与m-1在内)。
(1)Hash(key)==key/m;
(2)Hash(key)=1;
(3)IIash(key)==(key+random(m))%rn;
(4)Hash(key)=key%p(m);其中p(m)是不大于m的最大素数。
第10题
散列表A[10]中,若采用线性探查方法解决冲突,则在该散列表上进行等概率成功搜索的平均搜索长度为()。
A、2.60
B、3.14
C、3.71
D、4.33
第11题
此题为判断题(对,错)。