数据结构

设散列地址空间为0~m-1,k为关键字,用P去除k,将余数作为k的散列地址,即:h(k)=k%P,为了减少发生冲突的可能性,一般取P为()。A、小于m的最大奇数B、小于m的最大素数C、小于m的最大偶数D、小于m的最大合数

题目

设散列地址空间为0~m-1,k为关键字,用P去除k,将余数作为k的散列地址,即:h(k)=k%P,为了减少发生冲突的可能性,一般取P为()。

  • A、小于m的最大奇数
  • B、小于m的最大素数
  • C、小于m的最大偶数
  • D、小于m的最大合数
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

B.小于m的最大素数

C.小于m的最大偶数

D.小于m的最大合数


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

第2题:

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

第3题:

(9)设散列表的地址空间为 0 到 16,散列函数为 h(k)= k mod 17,用线性探查法解决碰撞。现从空的

散列表开始,依次插入关键码值 190,89,217,208,75,177,则最后一个关键码 177 的地址为

A)6

B)7

C)8

D)9


正确答案:C


(9)【答案】C)
【解析】根据散列表地址空间与函数,190 MOD  17=3。所以关键码 190 存储地址为 3;89MOD 17=4。所以关键码 89 存储地址为 4;217 MOD 17=13,所以关键码 217 存储地址为 13;208 MOD 17=4,由于关键码 89 已经存储在地址 4,所以关键码 208 存储地址向后移一位,存储地址为 5;75 MOD 17=7。所以关键码 75 存储地址为 7;177 MOD 17=7,由于关键码75已经存储在地址7。所以关键码177存储地址向后移一位,存储地址为8。

 

第4题:

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

A、1

B、2

C、3

D、4


参考答案:D

第5题:

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

第6题:

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

第7题:

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


正确答案:

第8题:

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

A ) 4

B ) 5

C ) 6

D ) 7


正确答案:C

第9题:

设散列地址空间为0~m-1,key为关键字,用p去除key,将得到的余数作为key的散列地址,即h(key)=key%p。为了减少发生冲突的频率,一般取p为()。

A小于等于m的最大奇数

B小于等于m的最大偶数

C小于等于m的最大素数

D小于等于m的最大合数


正确答案:C

第10题:

设散列函数H(key)=key MOD 7,用线性探测再散列法解决冲突。对关键字序列{13,28,72,5,16,8,7,9,11,29}在地址空间为0-10的散列区中建散列表,画出此表,并求等概率情况下查找成功时的平均查找长度。


参考答案:

更多相关问题