首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
admin
2017-11-14
41
问题
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
选项
答案
首先计算关键字的散列地址,若该地址为空,则空操作;若该地址有关键字,但与给定值不等,则用解决冲突的方法去查找给定值;若该地址有关键字且与给定值相等,则执行删除。题目要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不断裂。由于用线性探测解决冲突,设被删除元素的散列地址为i,则其余m—1(m为表长)个位置均可能是同义词。查找同义词的操作直到碰到空地址或循环一圈回到i才能结束。为了提高算法效率,减少数据移动,应将最后一个同义词前移填充被删除关键字。 void HsDelete(rectype HS[],K){ //在以除余法为散列函数线性探测解决冲突的散列表HS中,删除关键字K jnt j=K%P: //以造表所用的除余法计算关键字K的散列地址 if(Hs[i]==null){printf(”散列表中无被删关键字”);exit(0); } //此处null代表散列表初始化时的空值 switch(HS[i]==k){ case true:del(HS,i,j,K);break; case false:di=1;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[last];HS[last]=null; //将哈希地址last的关键字移到哈希地址j } 算法讨论:由于用线性探测解决;中突,可能发生“二次聚集”(两个第一哈希地址不同的记录争夺同一后继哈希地址)。像上面这样处理后,对于哈希地址为i的记录没有问题了,但由于将地址j置空,有可能截断了其他记录的探测通路。最明显的是哈希地址为j的记录就查不到了。解决的办法是继续调整,直到当前哈希表中的每个记录的查找都是正确的为止。这里不再深入讨论。
解析
转载请注明原文地址:https://kaotiyun.com/show/stRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
陈云作《目前财政经济的情况和克服困难的若干办法》的重要讲话,分析当前财政经济方面的主要困难,提出克服困难的六点意见的会议是()。
“我不想变成上帝,或居住在永恒之中,或者把天地抱在怀里,属于人的那种光荣对我就够了。我自己是凡人,我只要求凡人的幸福。”这句话体现的思想是()
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
在阿拉伯()统治时期,阿拉伯军队曾与当时中国的唐朝军队发生冲突。
第一个五年计划的具体时间段是()。
根据越南战争的起源和发展,分析“冷战”时期美国对第三世界政策的目标和动机。
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
随机试题
关于睾丸闯质细胞,下述正确的是()
汽车悬架一般由_______组成。
某年轻患者,因左上智齿颊侧错位,需局麻下拔除为避免局麻药中毒,其防治原则中不包括以下哪项
根据《合同法》对成立及生效的规定,合同成立并不等于合同生效,二者的区别包括()。
耐压试验主要用于检验压力容器承受()的能力。
案例五[背景材料]某工程,建设单位和施工单位按《建设工程施工合同(示范文本)》签订了施工合同,在施工合同履行过程中发生如下事件。事件1:工程开工前,总监理工程师主持召开了第一次工地会议。会上,总监理工程师宣布了建设单位对其的授权,并
甲酒厂为增值税一般纳税人,2011年6月发生以下业务:(1)从农业生产者手中收购粮食30吨,收购凭证上注明每吨收购价2000元,共计支付收购价款60000元。(2)甲酒厂将收购的粮食从收购地直接运往异地的乙酒厂生产加工白酒,白酒加工完毕,甲酒厂收回白酒
心理健康的规定不是一成不变的,它可以随着社会及个体的变化不断调整。心理平衡表现为没有欲望和观念的冲突,没有紧张、焦虑、畏缩等不良情绪反应。心理健康就是人通过不断的心理活动,把由于种种原因造成的心理失衡调适为心理平衡的状态。这段文字意在表明(
Whatifarchitectscouldbuildlivingsystemsratherthanstaticbuildings—dynamicstructuresthatmodifytheirinternalande
请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程proj1,该工程中含有一个源程序文件proj1.epp。其中位于每个注释“//ERROR****found****”之后的一行语句有错误。请改正这些错误,使程序的输出结果为:12345
最新回复
(
0
)