更多“在用散列表存储关键码集合时,可以用双散列法寻找下一个空位置。在设”相关问题
  • 第1题:

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

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

    A.0

    B.1

    C.3

    D.4


    正确答案:A

  • 第2题:

    ( 4 )设散列表的地址空间为 0 到 12 ,散列函数为 h ( k ) =k mod 13, 用线性探查法解决碰撞。现从空的教列表开始,依次插入关键码值 14, 95, 24, 61 , 27, 82, 69, 则最后一个关键码 69 的地址为【 4 】。


    正确答案:

  • 第3题:

    下列关于散列表的叙述中,哪一条是不正确的?( )

    A) 散列法的基本思想是:由结点的关键码值决定结点的存储地址

    B) 好的散列函数的标准是能将关键码值均匀地分布在整个地址空间中

    C) 在散列法中,处理碰撞的方法基本有两类:拉链法和除余法

    D) 散列表的平均检索长度随负载因子的增大而增加

    A.

    B.

    C.

    D.


    正确答案:C

  • 第4题:

    以下说法错误的是(42)。

    A.装填因子是散列法的一个重要参数,它反映了散列表的装填程度

    B.散列表的查找效率主要取决于散列表造表时选取的散列函数和处理冲突的方法

    C.散列表的结点中只包含数据元素自身的信息,不包含任何指针

    D.散列法存储的基本思想是由关键码值决定数据的存储地址


    正确答案:C
    解析:本题考查散列表的相关知识。散列表即哈希表,是由关键码值决定数据的存储地址的一种存储结构,表中的数据不仅包含自身的信息,而且还包含了一些相关的地址信息。元素的查找效率主要取决于散列表造表时选取的散列函数和处理冲突的方法。散列表的装填程度是由装填因子来体现的。

  • 第5题:

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

    A.

    B.

    C.

    D.


    正确答案:B

  • 第6题:

    ● 若线性表(23, 14, 45, 12, 8, 19, 7)采用散列法进行存储和查找。设散列函数为H(Key)=Key mod 7并采用线性探查法(顺序地探查可用存储单元)解决冲突,则构造的散列表为 (38) ,其中,mod表示整除取余运算。


    正确答案:A

  • 第7题:

    设散列表的存储空间大小为19,所用散列函数为h(key)=key mod 19,用开放地址线性探查法解决碰撞。散列表的当前状态如下: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190 194 768 559 582 93 208 现要将关键码值75插入到该散列表中,其地址应为______。

    A.1

    B.11

    C.5

    D.15


    正确答案:A

  • 第8题:

    对于关键码序列(54,34,5,14,50,36,47,83),用链地址法(或拉链法)解决冲突构造散列表(即将冲突的元素存储在同一个单链表中,单链表的头指针存入散列地址对应的单元),设散列函数为H(Key)=Key MOD 7(MOD表示整除取余运算),则构造散列表时冲突次数最多的哈希单元的地址是( )。

    A.0 B.1 C.5 D.6


    正确答案:C

  • 第9题:

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

    A.

    B.

    C.

    D.


    正确答案:B

  • 第10题:

    下列有关散列查找的叙述正确的是()。

    A.散列存储法只能存储数据元素的值,不能存储数据元素之间的关系
    B.散列冲突是指同一个关键字对应多个不同的散列地址
    C.用线性探测法解决冲突的散列表中,散列函数值相同的关键字总是存放在一片连续的存储单元中
    D.若散列表的装填因于a<<l,则可免冲突的严生

    答案:A
    解析:
    A项,在散列表中,每个元素的存储位置通过散列函数和解决冲突的方法得到,散列存储法只存储数据元素的值,不能存储数据元素之间的关系;B项,散列冲突是指多个不同关键字对应相同的散列地址;C项,用线性探测法解决冲突的散列表中,散列函数值相同的关键字不一定总是存放在一片连续的存储单元中;D项,装填因子a越小,发生冲突的概率越小,但仍有可能发生冲突。

  • 第11题:

    散列法存储的基本思想是由关键码的值决定数据的存储地址。


    正确答案:正确

  • 第12题:

    判断题
    在用散列表存储关键码集合时,可以用双散列法寻找下一个空位置。在设计再散列函数时,要求计算出的值与表的大小m互质。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第13题:

    假定用散列函数H1=k mod 13计算散列地址,当发生冲突时,用散列函数 H2=k mod ll+l来计算下一个探测地址的地址增量。设散列表的地址空间为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可插入在该地址中。

  • 第14题:

    已知散列表的存储空间为T[0…18],散列函数H(key)=key%17,并用二次探测法处理冲突。散列表中已插入下列关键字:T[5]=39,T[6]=57和T[7]=7,则下一个关键字23插入的位置是 ( )

    A.T[2]

    B.T[4]

    C.T[8]

    D.T[10]


    正确答案:D
    解析:由题意可得H(23)=6,而T[6]中已有关键字,产生冲突,此时采用二次探测法,则当i=1时,h1=(6+1×1)%17=7,又T[7]中也已有关键字仍然冲突。则选i=2,此时h2=(6+2×2)%17=10,此时可判定此关键字可插入T[10]单元中。

  • 第15题:

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

    下一个被插入的关键码是41,其插入的位置是。


    正确答案:

  • 第16题:

    散列表是一种重要的存储方式,在散列表里可快速进行检索。

    (1)散列表的基本思想是什么?

    (2)常用的散列函数有哪些,请举例说明(至少三个)。

    (3)怎样用拉链法和开地址法处理碰撞?


    正确答案:(1)散列表的基本思想是;由结点的关键码值决定结点的存储地址。即以关键码值k为自变量通过一定的函数关系H(称为散列函数)计算出对应的函数值H(k)来把这个值解释为结点的存储地址将结点存入该地址中去检索时按同样的方法计算出结点的地址然后到相应的地址中取结点即可。 (2)常用的散列函数有: ①除余法:即选择一个适当的正整数p(通常选p为小散列表存储区域大小的最大素数)用p去除关键码值取其余数作为地址。 ②折叠法:即将关键码值从某些地方断开分为几段折叠相加作为地址。 ③中平方法:即将关键码值平方取中间的几位数作为地址。 (3)用拉链法处理碰撞就是给散列表的每个结点增加一个link字段当碰撞发生时利用link字段拉链建立链接方式的同义词子表。每个同义词子表的第一个元素都在散列表基本区域中同义词子表的其他元素的存储又有两种解决方法一种是建立溢出区存放各同义词子表的其他元素另一种是不建立溢出区同义词子表的其他元素就存放在散列表中没有占用的单元中 用开地址法处理碰撞就是当碰撞发生时形成一个探查序列沿着这个序列逐个地址探查直到找到一个未被占用的地址将发生碰撞的关键码值存入该地址中。最简单的探查序列是线性探查即若发生碰撞的地址为d则探查的地址序列为; d+1d+2…m-101…d-1 其中m是散列表存储区域的大小另一种效果更好的探查序列是再散列探查即用第二个散列函数H2来确定探查序列若发生碰撞的地址为d则探查的地址序列为: (d+H2(k))mod m(d+2H2(k))mod m(d+3H2(k))mod m…
    (1)散列表的基本思想是;由结点的关键码值决定结点的存储地址。即以关键码值k为自变量,通过一定的函数关系H(称为散列函数),计算出对应的函数值H(k)来,把这个值解释为结点的存储地址,将结点存入该地址中去,检索时,按同样的方法计算出结点的地址,然后到相应的地址中取结点即可。 (2)常用的散列函数有: ①除余法:即选择一个适当的正整数p(通常选p为小散列表存储区域大小的最大素数),用p去除关键码值,取其余数作为地址。 ②折叠法:即将关键码值从某些地方断开,分为几段,折叠相加,作为地址。 ③中平方法:即将关键码值平方,取中间的几位数作为地址。 (3)用拉链法处理碰撞就是给散列表的每个结点增加一个link字段,当碰撞发生时利用link字段拉链,建立链接方式的同义词子表。每个同义词子表的第一个元素都在散列表基本区域中,同义词子表的其他元素的存储又有两种解决方法,一种是建立溢出区,存放各同义词子表的其他元素,另一种是不建立溢出区,同义词子表的其他元素就存放在散列表中没有占用的单元中, 用开地址法处理碰撞就是当碰撞发生时形成一个探查序列,沿着这个序列逐个地址探查,直到找到一个未被占用的地址,将发生碰撞的关键码值存入该地址中。最简单的探查序列是线性探查,即若发生碰撞的地址为d,则探查的地址序列为; d+1,d+2,…,m-1,0,1,…,d-1 其中,m是散列表存储区域的大小,另一种效果更好的探查序列是再散列探查,即用第二个散列函数H2来确定探查序列,若发生碰撞的地址为d,则探查的地址序列为: (d+H2(k))mod m,(d+2H2(k))mod m,(d+3H2(k))mod m,…

  • 第17题:

    设线性表(59,53,46,48,37,31,25)采用散列(Hash)法进行存储和查找,散列函数为H(Key)=Key MOD 7(MOD表示整除取余运算)。若用链地址法解决冲突(即将相互冲突的元素存储在同一个单链表中)构造散列表,则散列表中与哈希地址 (38) 对应的单链表最长。

    A.2

    B.3

    C.4

    D.6


    正确答案:C
    53,48,25对应的地址都为4.

  • 第18题:

    若线性表(23,14,45,12,8,19,7)采用散列法进行存储和查找。设散列函数为 H(Key)=Key mod 7并采用线性探查法(顺序地探查可用存储单元)解决冲突,则构造的散列表为(38),其中,mod表示整除取余运算。

    A.

    B.

    C.

    D.


    正确答案:A
    解析:本题考查哈希存储方法。
      对于关键字23、14、45、12、8、19,由哈希函数得到的哈希地址没有冲突,元素直接存入,如下所示。 
     
      对于元素7,其哈希地址为0,但是该地址中已经存入元素14,因此由H1=(Hash(12)+1) mod 7=1,再试探哈希地址1,但该地址已被元素8占用,发生冲突;再计算H2=(Hash(12)+2) mod 7=2,发生冲突(地址2被元素23占用);再计算H3=(Hash(12)+3)mod 7=3,发生冲突;再试探哈希地址4,空闲,因此将元素7存入哈希地址为4的单元,如下所示。

  • 第19题:

    设散列表的地址空间为0到10,散列函数为h(k)=k modll,用线性探查法解决碰撞。现从空的散列表开始,依次插入关键码值95,14,27,68,82,则最后—个关键码82的地址为:

    A.4

    B.5

    C.6

    D.7


    正确答案:C
    解析:本题是对散列表存储问题的考查。散列表的基本思想是:由结点的关键码值决定结点的存储地址,即以关键码值k为自变量,通过一定的函数关系h(称为散列函数),计算出对应的函数值h(k)来,把这个值解释为结点的存储地址,将结点存入该地址中。在散列表中,不同的关键码值可能对应到同一存储地址,这种现象叫碰撞,处理碰撞基本有两种方法:拉链法和线性探索法。在本题中,所采用的散列函数为h(k)=kmod11,用线性探查法解决碰撞。计算顺序如下:①h(95)=95modll=7,存在地址为7的位置;②h(14)=14modll=3,存在地址为3的位置;③h(27)=27modll=5,存在地址为5的位置;④h(68)=68modll=2,存在地址为2的位置;⑤h(82)=82modll=5,与关键码为27的存储位置发生碰撞,采用线性探索的方法解决,即将82存在5以后的首个开放位置,在本题中即为6,所以82存在地址为6的位置。因此本题正确答案为选项C。

  • 第20题:

    若关键码序列(23,35,14,49,8,12,30,7)采用散列法进行存储和查找。设散列函数为H(Key)=Key%11,采用线性探查法(顺序地探查可用存储单元)解决冲突,尚未构造完成的散列表如下所示,则元素12应存入哈希地址单位()

    A.0

    B.4

    C.11

    D.12


    正确答案:B
    本题考查数据结构基础知识。根据构造哈希表的方式,先由哈希函数计算12在哈希表中的存储位置为1(12%11),此时因1号单元被23占用而发生冲突,线性探查法解决冲突的方式是顺序地探查2号单元,仍然冲突,再探查3号单元,继续冲突,再探查4号单元,不再冲突,从而在经过4次探查后把12存入空闲的4号单元。

  • 第21题:

    若关键码序列(47,61,55,39,10,26,90,82)采用散列法进行存储和查找。设散列函数为H(Key)=Key mod 11(mod表示整除取余运算),拟采用链地址法(拉链法)解决冲突构造散列表。以下关于该散列表的叙述中,正确的是( )。

    A.关键码10和90位于同一个链中
    B.关键码61和82位于同一个链中
    C.关键码61和39位于同一个链中
    D.关键码47、55和39位于同一个链中

    答案:C
    解析:
    散列函数为H(Key)=KeyMOD11(MOD表示整除取余运算),因此只需要对线性表类数据分别与11进行取余运算。分别将关键码序列和11进行取余运算,得到{3,6,0,6,10,4,2,5},可以看出关键码61和39的值是相同的,因此其位于同一个链中。

  • 第22题:

    在用散列表存储关键码集合时,可以用双散列法寻找下一个空位置。在设计再散列函数时,要求计算出的值与表的大小m互质。


    正确答案:正确

  • 第23题:

    设散列表的地址空间为0到12,散列函数为h(k)=kmod13,用线性探查法解决碰撞。现从空的教列表开始,依次插入关键码值14,95,24,61,27,82,69,则最后一个关键码69的地址为()。


    正确答案:6

  • 第24题:

    判断题
    散列法存储的基本思想是由关键码的值决定数据的存储地址。
    A

    B


    正确答案:
    解析: 暂无解析