首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
admin
2017-01-04
44
问题
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
选项
答案
首先计算关键字的散列地址,若该地址为空,则空操作;若该地址有关键字,但与给定值不等,则用解决冲突的方法去查找给定值;若该地址有关键字且与给定值相等,则执行删除。题目要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不断裂。由于用线性探测解决冲突,设被删除元素的散列地址为i,则其余m一1(m为表长)个位置均可能是同义词。查找同义词的操作直到碰到空地址或循环一圈回到i才能结束。为了提高算法效率,减少数据移动,应将最后一个同义词前移填充被删除关键字。 void HsDelete(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);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/eQRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
简述弭兵之会的背景、过程和结果。
简述苏联建立“东方战线”的过程及其影响。
袁世凯得以复辟帝制不是因为()
巴黎和会上,英美主张把原德国在山东的权利转让给日本,华盛顿会议又表示支持中国让日本归还山东的要求,英美态度发生变化的根本原因是()。
《道威斯计划》的实施所产生的直接结果是()。
隋唐科举制的进士科最先出现在()。
某汽车轮渡口,过江渡船每次能载10辆车过江。过江车辆分为客车类和汽车类,上渡船有如下规定:同类车先到先上船,客车先于货车上船,且每上4辆客车,才允许上一辆货车,若等待客不足4辆,则以货车代替,若无货车等待允许客车都上船。写一算法模拟渡口管理。
在下列排序方法中不需要对排序码进行比较就能进行排序的是()。
一个磁盘有N个磁道,寻道时每移过一个磁道耗时T秒,文件相邻的数据块在磁盘上存放的位置平均相隔13个磁道,磁盘旋转延时平均R秒,每个存储块的传输时间为P秒,在这种情况下,传输100个数据块需要的时间是()。
设算术表达式由字符串b表示,其中可以包括三种括号:圆括号、方括号以及花括号,嵌套的顺序随意,如:“{[()]()}”。试编写算法,实现判定给定表达式中所含括号是否正确配对的出现。
随机试题
进行社区诊断时,决定优先解决的问题应考虑以下哪个方面
用酶法测定甘油三酯实际是测定血清中的
()是为证券市场参与者提供专业性咨询的机构,主要有证券投资咨询公司和证券评级机构。
根据《工程监理企业资质管理规定》,甲级工程监理企业的技术负责人应当( )。
某高土石坝坝体施工项目,业主与施工总承包单位签订了施工总承包合同,并委托了工程监理单位实施监理。施工总承包完成桩基工程后,将深基坑支护工程的设计委托给了专业设计单位,并自行决定将基坑的支护和土方开挖工程分包给了一家专业分包单位施工,专业设计单位根据业主提
我国自2004年3月1日起实施的《商业银行资本充足率管理办法》,规定了四级资产风险权重系数,分别是( )。
下列属于确定提供劳务交易的完工进度的方法的有()。
如果财政有赤字,货币供应量的变动状况是()
我国近代“躬行自明,身体力行”的教育家是()。
瓦盆,是旧时常见的日用品,因为烧制时要将大小瓦盆一套一套摞起来,运输和店家卖时也是一套一套摞着,故而有句歇后语,说某人讲起话来滔滔不绝,是“卖瓦盆的出身——一套一套的”。“卖瓦盆”式的干部并不少见,这些人说起话来________,讲起道理________。
最新回复
(
0
)