首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
admin
2016-03-29
31
问题
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
选项
答案
首先计算关键字的散列地址,若该地址为空,则空操作;若该地址有关键字,但与给定值不等,则用解决冲突的方法去查找给定值;若该地址有关键字且与给定值相等,则执行删除。题目要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不断裂。由于用线性探测解决冲突,设被删除元素的散列地址为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
学硕统考专业
相关试题推荐
试结合新民主主义革命不同历史时期的历史实际,阐述中国共产党在处理同资产阶级复杂关系问题上的做法、结果及其历史经验。
根据义和团运动的产生和发展,论述当今史学界对义和团运动的不同看法。(厦门大学2016年历史学基础真题)
简述马歇尔计划的内容与影响。(辽宁大学2014年历史学专业基础真题)
试述辽朝政治制度的特点。
两次世界大战的原因和性质有什么异同?
1905年至1907年间,围绕中国究竟是采用革命手段还是改良方式这个问题,革命派与改良派进行论战的舆论阵地是()。
法国里昂工人起义提出:“我们只有一个口号‘人人自由平等!’”英国宪章运动请愿书提出:“我们竭尽自由人的义务,就应享受自由人的权利。我们要求普遍选举。”这些要求表明()。①带有空想社会主义色彩②当时工人的要求还没有超出资产阶级民主主义的范畴
下面有关兵制的内容,与唐玄宗有关的是()
一个由高速缓冲存储器Cache与主存储器组成的二级存储系统。已知主存容量为1MB,按字节编址,缓存容量为32KB,采用组相联方式进行地址映射与变换,主存与缓存的每一块为64B,缓存共分8组。(1)写出主存与缓存的地址格式(标明各字段名称与位数)
已知一个带有表头结点的单链表,结点结构为:假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。要求:
随机试题
以下哪项是影响小儿生长发育最基本的因素
在相对数计算中,一般说______的总和理论上应是100%
女性,18岁,甲状腺弥漫性肿大,无突眼。甲状腺摄碘试验:2小时25%。24小时50%。清晨空腹测定脉搏70次/分,血16/10kPa(120/80mmHg)。SPECT检查甲状腺无结节。最可能的诊断是
A.慢性再生障碍性贫血B.急性特发性血小板减少性紫癜C.缺铁性贫血D.溶血性贫血E.慢性特发性血小板减少性紫癜合并缺铁性贫血男性,14岁。因血尿伴黑便3天入院,查体:肝脾不大,上腹无压痛。血红蛋白69g/L,白细胞14.0×109L,血小板21
患者,男,32岁。慢性阑尾炎,拟行择期手术。术前1天患者自诉心悸,头痛,头晕、面色苍白,呕吐、腹泻,烦躁不安、夜间失眠等。护士分析导致该患者健康问题的原因是
下列何症,少见于气滞证
某县公安局在处理一起打架斗殴案件中,根据被害人张三口头提供的有关受伤情况的证据,对加害人李四作出行政拘留15天的处罚决定。李四对此不服,向上级公安机关市公安局申请复议,市公安局维持了县公安局处罚决定。李四仍不服,其向某县人民法院提起行政诉讼,该法院受理了此
某工程单代号网络计划如下图所示,其关键线路为()
为了合理确定合同价格并顺利解决合同执行过程中出现的有关问题,监理工程师需要掌握()。
Americansdon’tliketolosewars.Ofcourse,alotdependsonhowyoudefinejustwhatawaris.Thereareshootingwars—theki
最新回复
(
0
)