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

题目

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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第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题:

散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的( )方法是散列文件的关键。

A、散列函数

B、除余法中的质数

C、冲突处理

D、散列函数和冲突处理


正确答案:D

第3题:

●设散列地址空间为0…m-1,k为关键字,假定散列函数为h(k)=k%p,为了减少冲突,一般应取p为 (50) 。

(50) A.小于m的最大奇数

B.小于m的最大素数

C.小于m的最大偶数

D.小于m的最大合数


正确答案:B
【解析】此题是考查数据结构中的Hash查找算法。根据每个选项所选的值进行计算如果得到的不同散列值越多则冲突可能性越小,根据结果特征应该B为最佳。

第4题:

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

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


正确答案:

第5题:

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

A、1

B、2

C、3

D、4


参考答案:D

第6题:

设有两个散列函数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

第7题:

分别写出在散列表中插入和删除关键字为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;
  }

第8题:

(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。

第9题:

设哈希表地址范围为0~19,哈希函数H(key)=key%17,使用二次探测再散列法处理冲突。若表中已存放有关键字值为 6、22、38、55的记录,则再放入关键字值为72的记录时,其存放地址应为()。

A、2

B、3

C、4

D、7

E、8

F、以上都不对


正确答案:D

第10题:

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

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


正确答案:×
0 解析:根据H1,42的插入位置应该是42 mod 13,即3,但位置3有冲突,用H2探测地址增量:42 mod 11+ 1=10,所以其插入位置应该是3+10=13,很显然T的最大位置是12,所以其插入位置为0。

更多相关问题