在建立散列表时,若散列函数为H(k),a与b分别为关键字值,则当

题目

在建立散列表时,若散列函数为H(k),a与b分别为关键字值,则当()时,称此现象为散列冲突。

  • A、a=b
  • B、a≠b
  • C、a=b且H(a)=H(b)
  • D、a≠b且H(a)=H(b)
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.0

B.1

C.3

D.4


正确答案:A

第2题:

对于关键字序列()进行散列存储时,若选用H()=K%7作为散列函数,则散列地址为0的元素有()个。

A、1

B、2

C、3

D、4


参考答案:D

第3题:

(4)设散列表的地址空间为0到18,散列函数为h(k)=k mod 19,用线性控查法解决碰撞。现从空的散列表开始,依次插入关键码值190,89,217,75,则最后一个关键码33的地址为___________。


正确答案:

(4)【答案】1
【解析】线性探测法,就是在发生冲突时,从H(K) 以后的位置逐一探测,直至找到一个空位置,将新记录插入,在检索时,如果H(K)中不是所城关键值的记录,也是从H(K)往下逐一搜索,直至找到所需关键值或查找失败为止。应注意查找次序是:H(K),H(K)+1.H(K) +2,…n-1,c,1,2,…,H(K)-1,插入关键码值190,地址为0;插入关键典雅值89,地址 为13;插入关键码值217,地址为8,插入关键码值208,地址为18,插入关键码值75,产生冲突,用线性探查解决冲突后财址为1。

第4题:

设有一个用线性探测法解决冲突得到的散列表:散列函数为H(k)=kmod 11,若查找元素14,则探测的次数(比较的次数)为

A.8

B.9

C.3

D.6


正确答案:D
解析:根据散列函数H(k)=kmod11,待查找元素14的哈希地址H(14)=3,但该地址已经存放了元素25,根据线性探测法,得第一次冲突处理后的地址H1=(3+1)mod11=4,而该地址已经存放了元素80,则找第二次冲突处理后的地址H2=(3+2)mod11=5,该地址已经存放了元素16,依次类推,直到第五次冲突处理后的地址H5=8,该地址存放的是元素14,即查找成功,因此探测的次数为6次。

第5题:

设有一个用线性探测法解决冲突得到的散列表:

散列函数为H(k)=k mod 11,若查找元素14,则探测的次数(比较的次数)为________。

A.8

B.9

C.3

D.6


正确答案:D
解析:根据散列函数H(k)=k mod 11,待查找元素14的哈希地址H(14)=3,但该地址已经存放了元素25,根据线性探测法,得第一次冲突处理后的地址H1=(3+1)mod 11=4,而该地址已经存放了元素80,则找第二次冲突处理后的地址H2=(3+2)mod 11=5,该地址已经存放了元素16,依次类推,直到第五次冲突处理后的地址 H5=8,该地址存放的是元素14,即查找成功,因此探测的次数为6次。

第6题:

分别写出在散列表中插入和删除关键字为K的一个记录的算法,设散列函数为H,解决冲突的方法为链地址法。


参考答案:
  [算法描述]
  bool insert(){
  int data;
  cin>>data;
  int ant=hash(data);
  LinkList p=HT[ant]; //初始化散列表
  while (p->next){
  if(p->next->data==data)
  return false;
  p=p->next;
  } //找到插入位置
  LinkList s;
  s=new LNode;
  s->data=data;
  s->next=p->next;
  p->next=s; //插入该结点
  return true;
  }
  bool deletes(){
  int data;
  cin>>data;
  int ant=hash(data);
  LinkList p=HT[ant]; //初始化散列表
  while (p->next){
  if(p->next->data==data){
  LinkList s=p->next;
  p->next=s->next;
  delete s; //删除该结点
  return true;
  } //找到删除位置
  p=p->next; //遍历下一个结点
  }
  return false;
  }

第7题:

对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有()个。

A.1

B.2

C.3

D.4


正确答案:D

第8题:

假定用散列函数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可插入在该地址中。

第9题:

设有一个用线性探测法解决冲突得到的散列表:

散列函数为H(k)=k mod 11若查找元素15,则探测的次数(比较的次数)为( )。

A)7

B)9

C)3

D)6


正确答案:C

第10题:

若散列函数为H(k),a和b为两个不同的关键字值,则当出现()时,称此现象为散列冲突。


正确答案:H(a)=H(b)

更多相关问题