对关键码序列(12,24,15,56,20,87,69,9)采用散列法进行存储和查找,并设散列函数为H(Key)=Key%11(%表示整除取余运算)。采用线性探查法(顺序地探查可用存储单元)解决冲突所构造的散列表为_____________。

admin2021-01-13  34

问题 对关键码序列(12,24,15,56,20,87,69,9)采用散列法进行存储和查找,并设散列函数为H(Key)=Key%11(%表示整除取余运算)。采用线性探查法(顺序地探查可用存储单元)解决冲突所构造的散列表为_____________。

选项 A、 
B、 
C、 
D、 

答案B

解析 本题考查数据结构基础知识。
    按顺序计算各关键码的哈希(散列)地址如下:
    H(12)=12%11=1,H(24)=24%11=2,H(15)=15%11=4,H(56)=56%11=1
    H(20)=20%11=9,H(87)=87%11=10,H(69)=69%11=3,H(9)=9%11=9
    初始时哈希表为空,关键码12、24和15存入时没有发生冲突,因此这些关键码的存储位置即为由哈希函数计算所得,如下表所示。

    存入关键码56时,计算得到其哈希地址为1,发生冲突,用线性探查法探查哈希地址为2的单元,仍然冲突,再探查哈希地址为3的单元,不再冲突,因此在3号单元存入56,如下表所示。

    接下来存入关键码20和87时,其对应的哈希单元都不冲突,因此依次在9号单元和10号单元存入20、87,如下表所示。

存入关键码69时,计算得到其哈希地址为3,发生冲突,用线性探查法探查哈希地址为4的单元,仍然冲突,再探查哈希地址为5的单元,不再冲突,因此在5号单元存入69,如下表所示。

    存入关键码9时,计算得到其哈希地址为9,发生冲突,用线性探查法探查哈希地址为10的单元,仍然冲突,再探查哈希地址为0的单元,不再冲突,因此在0号单元存入9,如下表所示。
转载请注明原文地址:https://jikaoti.com/ti/NeE7FFFM
0

最新回复(0)