设某散列表的长度为100,散列函数H(k)=k%P,则P通常情况下最好选择()。A、99B、97C、91D、93

题目

设某散列表的长度为100,散列函数H(k)=k%P,则P通常情况下最好选择()。

  • A、99
  • B、97
  • C、91
  • D、93
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

第2题:

假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数()

A.h(K)=KmodN

B.h(K)=1

C.h(K)=K/N

D.h(K)=(K+rand(N))modN,rand(N)返回一个0到N-1的整数


正确答案:A

第3题:

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

A ) 4

B ) 5

C ) 6

D ) 7


正确答案:C

第4题:

设散列表的地址空间为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。

第5题:

设散列表中m个存储单元,散列函数为H(key)=key%p,p是最好选择()。

A.小于等于m的最大奇数

B.小于等于m的最大素数

C.小于等于m的最大偶数

D.小于等于m的最大合数


正确答案:B

第6题:

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


正确答案:

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

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

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

B.小于m的最大素数

C.小于m的最大偶数

D.小于m的最大合数


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

第9题:

若散列表长度为m,散列函数为H(key)=key MOD p,则P应取(53)。

A.小于m的最大素数

B.小于m的最大奇数

C.小于/n的最大偶数

D.小于m的任意整数


正确答案:A
解析:若散列表长度为m,散列函数为H(key)=keyMODp,则p应取小于m的最大素数,答案为A。

第10题:

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

A.

B.

C.

D.


正确答案:B

更多相关问题