首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
admin
2019-08-15
57
问题
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
选项
答案
首先计算关键字的散列地址,若该地址为空,则空操作;若该地址有关键字,但与给定值不等,则用解决冲突的方法去查找给定值;若该地址有关键字且与给定值相等,则执行删除。题目要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不断裂。由于用线性探测解决冲突,设被删除元素的散列地址为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=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[last]; HS[last]=null; //将哈希地址last的关键字移到哈希地址j } 算法讨论:由于用线性探测解决冲突,可能发生“二次聚集”(两个第一哈希地址不同的记录争夺同一后继哈希地址)。像上面这样处理后,对于哈希地址为i的记录没有问题了,但由于将地址j置空,有可能截断了其他记录的探测通路。最明显的是哈希地址为j的记录就查不到了。解决的办法是继续调整,直到当前哈希表中的每个记录的查找都是正确的为止。这里不再深入讨论。
解析
转载请注明原文地址:https://kaotiyun.com/show/o0Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
1890-1906,美南部各州纷纷制定法律或修改州宪法,对公民选举资格进行限定,部分州采用祖父条款,规定内战前有投票格的人,其后代不受新投票规则限制,但该条款被联邦最高法院否定,表明当时美国:
论述秦国商鞅变法的内容、过程以及重要意义。
阅读下面史料,回答问题:材料一各缔约国主力舰替换总吨位按照标准排水量计算不得超过如下:合众国525000吨;英帝国525000吨;法国175000吨;意大利175000吨;日本315000吨。
基督教产生的时间是()。
在一个长度为n(n>1)的带头结点的单链表h上,设有尾指针r(指向尾结点),则执行()操作与链表的长度有关。
已知一组关键字为(26,36,41,38,44,15,68,12,6,51,25),用链地址法解决冲突。假设装填因子a=0.75,散列函数的形式为H(K)=KMODP,回答下列问题:(1)构造散列函数。(2)画出散列表。(
Demandpaging算法是paging算法在虚拟存储空间管理的扩展。其主要的改进是:仅当需要访问某页面时,如果它不在内存,把它调入内存。按照这个思路,将segmentation算法(段式存储管理算法)扩展到虚拟存储空间管理,也可以产生类似的算法,不妨
某计算机采用微程序控制方式,微指令字长32位,采用字段直接编码的控制方式,共有55个微命令,可分为6个互斥组,分别包含1、3、7、8、12、24个微命令。另外,该机共有5个可判定的外部条件,采用断定方式形成后续微指令地址。(1)设计该机微指令的格式,
若二叉树的前序序列为DABCEFG,中序序列为BACDFGE,则其层次序列为()。
下列叙述正确的个数是()。(1)m=2的平衡m路查找树是AVL树(2)m=3的平衡m路查找树是2—3树(3)m=2的平衡m路查找树的叶结点不一定在同一层(4)m阶B一树的叶结点必须在同一层(5)m阶B一树是平衡m路查找树(6)平衡m路查
随机试题
在设备分类代号中哪个字母代表换热器?()
阅读艾青的《我爱这土地》,回答问题。假如我是一只鸟,我也应该用嘶哑的喉咙歌唱:这被暴风雨所打击着的土地,这永远汹涌着我们的悲愤的河流,
A县张某系艾滋病患者,在B市传染病医院隔离治疗期间,擅自出医院回到A县,脱离隔离治疗,为防止艾滋病传播,可以协助传染病医院追回张某采取强制隔离治疗的是
某金融机构开展基本建设贷款业务,按建设方提供年度用款计划分五年签订分包合同,已经签订的分合同金额为3000万元,第五年末即2009年末基本建设业务完工,双方签订总合同,金额为3500万元,则2009年末双方应当缴纳的印花税为()。
跟领导签订合同的时候对方要求追加合同条款。但你跟领导都不能确定这一条款是否会造成自己的损失。问这种情况下怎么办?
科研机构对一首非常流行的歌曲进行了研究。发现它以3.6秒为一个周期将五个音节重复4次,而整首歌中五个音节的核心节奏重复了100次以上。这样的节拍和人在慢跑半小时后的心率几乎同步——这也正是人感觉最为兴奋的瞬间。这一说法,解释了为什么大多数人都会不自觉地跟着
一个声音的听觉阈值因另一个声音的出现而提高的现象称为听觉掩蔽。其特点有()。(2014年)
中国要坚持走和平发展道路,走和平发展道路
Whatdoesthemanwanttodo?
Afteryearsofdithering(徘徊犹豫),Americaissetforpatentreform.OnSeptember6thabillproposingtochangethesystempassed
最新回复
(
0
)