设有两个散列函数H1(k)=kmod 13和H2(k)=kmod 11+1,散列表为T[0…12],用二次散列法解决冲突。函数H1用来计算散列地址,当发生冲突时,H2作为计算下一个探测地址的地址增量。假定某一时刻散列表的状态为:下一个被插入的关键码为42,其插入位置应是( )。A.0B.1C.3D.4

题目

设有两个散列函数H1(k)=kmod 13和H2(k)=kmod 11+1,散列表为T[0…12],用二次散列法解决冲突。函数H1用来计算散列地址,当发生冲突时,H2作为计算下一个探测地址的地址增量。假定某一时刻散列表的状态为:

下一个被插入的关键码为42,其插入位置应是( )。

A.0

B.1

C.3

D.4


相似考题
更多“ 设有两个散列函数H1(k)=kmod 13和H2(k)=kmod 11+1,散列表为T[0…12],用二次散列法解决冲突。函数H1用来计算散列地址,当发生冲突时,H2作为计算下一个探测地址的地址增量。假定某一时刻”相关问题
  • 第1题:

    设有一个用线性探测法解决冲突得到的散列表,该表共有0~10个地址单元,其中地址单元2~8中的内容依次为13,25,80,16,17,6,14。散列函数为: H(k)=k mod 11 若要查找元素14,探测(比较)的次数是( )。

    A.8

    B.9

    C.3

    D.6


    正确答案:D
    解析:由散列函数为:H(k)=k mod11可计算出13,25,80,16,17,6, 14的散列地址依次为2、3、3、5、6、6、3,在存储14时,2、3、4、5、6、7连续6个单元已经被占用,如表13-17所示。而14的散列地址为3,因此在查找时需从地址为3的位置开始比较,一直到14存储的地址8(包括8),共比较了6次。

  • 第2题:

    设散列函数为H(k)=k mod7,一组关键码为23,14,9,6,30,12和18,散列表T的地址空间为0.6,用线性探测法解决冲突,依次将这组关键码插入T中,得到的散列表为( )

    A.

    B.

    C.

    D.


    正确答案:B

  • 第3题:

    2、已知散列表a[14]中,a[4]~a[7]已有元素占用,其余为空。散列函数为 hash(k) = k mod 11,用开放地址法和平方探测法解决冲突,当插入元素49时,得到的散列地址为()。


    9

  • 第4题:

    假定用散列函数H1=k mod 13计算散列地址,当发生冲突时,用散列函数 H2=k mod 11+1来计算下一个探测地址的地址增量。设散列表的地址空间为0~12,在地址2、3、8中,散列表相应的内容为80,85,34。下一个被插入的关键码是42,其插入的位置是【 】。


    正确答案:×
    0 解析:H1=42 mod 13=3,地址3中已分配给85,所以计算H2,H2=42 mod 11+1=10,这是地址增量。下一个探测地址应为3+10=13,13 mod 13=0,0地址为空,故42可插入在该地址中。

  • 第5题:

    已知散列表a[14]中,a[4]~a[7]已有元素占用,其余为空。散列函数为 hash(k) = k mod 11,用开放地址法和平方探测法解决冲突,当插入元素49时,得到的散列地址为()。


    D