散列表的地址区间为0-17,散列函数为H(K)=K mod 17

题目

散列表的地址区间为0-17,散列函数为H(K)=K mod 17。采用线性探测法处理冲突,并将关键字序列26,25,72,38,8,18,59依次存储到散列表中。元素59存放在散列表中的地址是()。

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

第1题:

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

列表开始,依次插入关键码值 36,95,14,27,68,82,则最后一个关键码插入后散列表的负载因子 a 约

为( )。

A)0.45

B)0.55

C)0.65

D)0.75


正确答案:B

(11)【答案】B)
【解析】线性探查法将散列表看成是一个环行表,若在基地址d(即h(K)=d)发生冲突,则依次探查下述地址单元:d+1,d+2,…,M-0,0,1…,d-1直到找到一个空闲地址或岔道找到关键码为key的结点为止。题中三列表长度M=11,n=6,散列函数为h(k)=k mod11。在本题中,按顺序插入各个结点。36:h(36)=3。95:h(95)=7。插入14时,其散列地址为3,由于3已被关键码为36的元素占用,故需进行探查。显然4为开放空闲地址,故可将其放在4单元。27:h(27)=5。68:h(68)=2.插入82时,其散列地址为5,由于5已被关键码为27的元素占用,故需进行探查,按顺序探查法,显然6为开放的空闲地址,故可将其放在6单元。负载因子a=N/M.其中M是散列表存储空间大小,N表中当前的记录数目。故a=0.55.

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

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

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


正确答案:

第5题:

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

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

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

第10题:

设散列表的地址空间为0到16,散列函数为h(k)二k mod 17,用线性探查法解决碰撞。现从空的散列表开始,依次插入关键码值190,89, 200, 208, 92, 160,则最后一个关键码160的地址为

A.6

B.7

C.8

D.9


正确答案:C

更多相关问题