刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
解答思路:
首先,我们需要了解哈希表、哈希函数以及冲突处理机制。在这个问题中,给定的哈希表长度为m=13,哈希函数为H(key)=key MOD 11。这意味着当我们用关键字去计算哈希地址时,会对11进行取模操作。如果计算出来的地址已经存在数据,就会产生冲突。此时,线性探测再散列是一种解决冲突的方法,即当冲突发生时,顺序查看下一个地址,直到找到空地址为止。
已知哈希表中已有4个节点的地址分别为:addr(16)=5, addr(28)=6, addr(84)=7, addr(19)=8。我们需要计算关键字为38的地址。
按照哈希函数计算,对于关键字38,其哈希地址为:H(38) = 38 MOD 11 = 5。但是,我们知道addr(5)已经被占用了(addr(16)=5),所以发生了冲突。此时,我们需要使用线性探测再散列的方法,查看addr(6),addr(7),addr(8)…直到找到空地址为止。
最优回答:
关键字为38的哈希地址为5,但由于冲突,实际地址需要从addr(6)开始线性探测。根据已有节点的情况,我们需要探测到addr(12)才找到空地址,所以关键字为38的地址为addr(12)。
本文链接:假设我们有一个哈希表,其长度为m=13,哈希函数定义为H(key)=key MOD 11。表中已有四
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!