首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
admin
2016-03-29
42
问题
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
选项
答案
首先计算关键字的散列地址,若该地址为空,则空操作;若该地址有关键字,但与给定值不等,则用解决冲突的方法去查找给定值;若该地址有关键字且与给定值相等,则执行删除。题目要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不断裂。由于用线性探测解决冲突,设被删除元素的散列地址为i,则其余m一1(m为表长)个位置均可能是同义词。查找同义词的操作直到碰到空地址或循环一圈回到i才能结束。为了提高算法效率,减少数据移动,应将最后_个同义词前移填充被删除关键字。 void:Hs[)elete(rectype HS[],K){ //在以除余法为散列函数线性探测解决冲突的散列表HS中,删除关键字K int i=K%P; //以造表所用的除余法计算关键字K的散列地址 if(HS[i]==null){printf(”散列表中无被删关键字”);exit(0); } //此处null代表散列表初始化时的空值 switch(Hs[i]==k){ case true;del(HS,i,j,K);breaki case false;di=l;j=(i+di)%m; //m为表长 while(Hs[j]!=null&&HS[j]!=K&&j!=i){ //查找关键字K di=di+1: j=(i+di)%m; } if(Hs[j]==K)del(HS,i,j,K); else{printf(”散列表中无被删关键字”);exit(0);} }// switch } void del(rectype Hs[],in i,int j,rectype K){ //在散列表HS中,删除关键字K,K的散列地址是i,因解决冲突而将其物理地 //置于表中位置j。算法查找关键字K的同义词,将其最后一个同义词移到位置j, //并将其同义词的位置置空 di=1;last:j;x=(j+di)%m; //探测地址序列,last记K的最后一个同义词的位置 while(x!=i){ //可能要探测一圈 if(HS[x]==null)break; //探测到空位置,结束探测 else if(HS[x]%P==i)last=x; //关键字K的同义词 di=di+1;x=(j+di)%m; //取下一地址探测 } HS[j]=HS[1ast];HS[1ast]=null; //将哈希地址last的关键字移到哈希地址j } 算法讨论:由于用线性探测解决冲突,可能发生“二次聚集”(两个第一哈希地址不同的记录争夺同一后继哈希地址)。像上面这样处理后,对于哈希地址为i的记录没有问题了,但由于将地址,置空,有可能截断了其他记录的探测通路。最明显的是哈希地址为j的记录就查不到了。解决的办法是继续调整,直到当前哈希表中的每个记录的查找都是正确的为止。这里不再深入讨论。
解析
转载请注明原文地址:https://kaotiyun.com/show/bhRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
我国对资本主义工商业采取和平赎买的政策内容和成功意义。
分析父系氏族公社的经济生活和社会组织。
简述西属拉丁美洲独立战争三个中心斗争情况。
中国第一个资产阶级革命团体兴中会建立的时间是()。
八届十中全会对邓子恢等人提倡建立包产到户的生产责任制进行错误批判,并将其称之为()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
下列对近代社会思潮产生的先后顺序排列正确的是()。①人文主义②自由主义③理性主义④重商主义
到1869年为止,人类已发现了多少种化学元素()。
在请求分页存储管理中,若采用FIFO的页面淘汰算法,当分配的页面数增加时,缺页中断的次数()。
随机试题
突然——忽然
记忆vt.m_______
脱氧不完全的钢称()。
A、苯妥英钠B、异戊巴比妥C、维拉帕米D、硝苯地平E、依那普利血管紧张素转化酶抑制药
生物矿化的有机基质作用为
A.医生、患者各自的权利与义务B.依法给予行政处分或纪律处分C.损害赔偿D.医务人员疏忽大意违反卫生法律相关规定,给患者造成明显人身伤害E.依法追究刑事责任医疗事故指
审查分包人的安全资质和安全生产责任是属于()的安全生产责任。
甲房地产开发公司于2007年获得所在城市一处居民用地的土地使用权,此地块共计3万平方来,用来进行居民小区的开发和建设,然而经过2年的建设,甲公司因资金周转不足的原因无力继续进行该商业居住小区的开发建设,因此甲公司将该项目转让给乙公司,乙公司在此基础上继续进
X.25是一种三层通信协议,在这种网络中,计算机通常与网络的(322)相连接。x.25网络的数据链路层使用的标准是(323),它允许在收到应答前连续发送(324)帧数据,为用户提供的最高速率为(325)Kbps。两个X.25网络之间互联时使用(326)协议
考生文件夹下存在一个数据库文件“samp3.accdb”,里面已经设计好表对象“tStud”,同时还设计出窗体对象“fStud”。请在此基础上按照以下要求补充“fStud”窗体的设计:假设“tStud”表中,“学号”字段的第5位和第6位编码代表该生的专
最新回复
(
0
)