设散列表为,即表的大小为m=13。现采用双散列法解决冲突。散列函数和再散列函数分别为:其中,函数
设散列表为,即表的大小为m=13。现采用双散列法解决冲突。散列函数和再散列函数分别为:
其中,函数Rev(x)表示颠倒10进制数x的各位,如Rev(37)=73,Rev(7)一7等。若插入的关键码值序列为(2,8,31,20,70,59,25,28)。
(1)试画出插人这8个关键码值后的散列表。
(2)计算搜索成功的平均搜索长度。
设散列表为,即表的大小为m=13。现采用双散列法解决冲突。散列函数和再散列函数分别为:
其中,函数Rev(x)表示颠倒10进制数x的各位,如Rev(37)=73,Rev(7)一7等。若插入的关键码值序列为(2,8,31,20,70,59,25,28)。
(1)试画出插人这8个关键码值后的散列表。
(2)计算搜索成功的平均搜索长度。
101003245581263292004000
(1)散列函数采用除留余数法,用%m(取模运算)将各关键码映像到表中。请指出每一个产生冲突的关键码可能产生多少次冲突。
(2)散列函数采用先将关键码各位数字折叠相加,再用%m将相加的结果映像到表中的办法。请指出每一个产生冲突的关键码可能产生多少次冲突。
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的最大素数。
(1)散列表的大小应该是多少?
(2)如果散列函数采用除留余数法,写出散列两数的定义;
(3)若已有的8个记录分别为(58,87,38,95,49,75,64,47),依次将它们存放到表中;
(4)计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。
设散列表容量为11且初始为空,采用除余法确定散列地址,采用单向平方试探法排解冲突,采用懒惰策略实现删除操作。
a)若通过put()接口将关键码(2012,10,120,175,190,230)依次插入中,试给出此时各桶单元的内容;
b)若再执行remove(2012),试给出此时各桶单元的内容;
c)若继续执行get(2012),会出现什么问题?为什么?
d)为避免此类问题的出现,可以采取什么措施?试给出至少两种方案。
(1)k1的探查序列:___30___,________,________,________,
(2)k2的探查序列:___28___,________,________,________,
(3)k3的探查序列:________,________,________,________,
(1)设计散列表的类。
(2)设计在散列表中搜索具有指定关键码值表项的算法.
(3)设计在散列表中册除具有指定关键码值表项的算法.
(4)设计在散列表中插人具有指定关键码值表项的算法。
(5)设计出一组关键码值建立散列表的算法。
(6)设计输出散列表的算法。
(7)求搜索成功时的平均搜紫长度的算法。
(8)求搜索不成功时的平均搜索长度的算法。
设α是散列表的装钱因子,则应用双散列法解决冲突时的搜索成功的平均搜索长度和搜索不成功的平均搜索长度分别为:(请根据题意选用合用的公式)
散列表A[10]中,若采用线性探查方法解决冲突,则在该散列表上进行等概率成功搜索的平均搜索长度为()。
A、2.60
B、3.14
C、3.71
D、4.33
A.健脾养阴,益胃止痛
B.温中散寒,健脾和胃
C.清胃泄热,疏肝理气
D.疏肝理气,健脾和胃
E.活血化瘀,通络和胃