首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
admin
2019-08-01
81
问题
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
选项
答案
首先计算关键字的散列地址,若该地址为空,则空操作;若该地址有关键字,但与给定值不等,则用解决冲突的方法去查找给定值;若该地址有关键字且与给定值相等,则执行删除。题目要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不断裂。由于用线性探测解决冲突,设被删除元素的散列地址为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]=nuu; //将哈希地址last的关键字移到哈希地址j } 算法讨论:由于用线性探测解决冲突,可能发生“二次聚集”(两个第一哈希地址不同的记录争夺同一后继哈希地址)。像上面这样处理后,对于哈希地址为i的记录没有问题了,但由于将地址j置空,有可能截断了其他记录的探测通路。最明显的是哈希地址为j的记录就查不到了。解决的办法是继续调整,直到当前哈希表中的每个记录的查找都是正确的为止。这里不再深入讨论。
解析
转载请注明原文地址:https://kaotiyun.com/show/zkCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
赋税是我国古代国家宏观管理经济的重要手段。 据此回答问题:明朝推行一条鞭法中“一”的内容是()
德国农民战争过程中,颁布的具有资产阶级性质的革命纲领是()。
1929~1933年经济危机加剧了世界局势的紧张,这主要是指()。①各国人民强烈要求改善生活状况,罢工运动高涨②法西斯分子在各国兴风作浪③资本主义加紧掠夺国际市场,加剧了各国间的矛④资本主义加紧掠夺殖民地和半
以下()协议完成了从网卡到IP地址的映射。
(1)页面长度为1KB=210B,因此页内偏移地址占10位。主存大小为16KB=214B,所以物理地址占14位。0AC5H=0000101011000101B,除去后10位,得到页号为2,则查找页表可知物理块号为4,所以物理地址是0100101100
若二叉树的前序序列为DABCEFG,中序序列为BACDFGE,则其层次序列为()。
一个SPOOUNG系统由输入进程I、用户进程P、输出进程O、输入缓冲区、输出缓冲区组成。进程I通过输入缓冲区为进程P输入数据,进程P的处理结果通过输出缓冲区交给进程O输出。进程间数据交换以等长度的数据块为单位,这些数据块均存储在同一个磁盘上,因此,SPOO
有两部计算机M1和M2,指令系统相同。它们的操作频率频率分别是400MHz和200MHz。指令分成A、B和C三类,在M1上执行分别需4、6和8个周期;在M2上执行分别需2、4和3个周期。现有一程序在两机器上执行,其中A、B和C三类指令依次占30%、50
“乘法减少”和“加法增大”备用在什么情况下?
“乘法减少”和“加法增大”各用在什么情况下?
随机试题
关于一般预防和特殊预防的关系,下列哪一选项是错误的?()
电弧螺柱焊时,对中碳钢、高碳钢要求进行预热,以防止()的产生。
大仲马以复辟王朝和七月王朝为背景,描写邓蒂斯报恩复仇故事的作品是
用水浸泡,有黏液渗出的药材为
A.王不留行B.僵蚕C.鳖甲D.钟乳石E.侧柏叶应付麸炒制品的是()。
患者,男,63岁,上腹痛,以餐后明显,进餐后1~2小时出现,伴有恶心,呕吐,体重无明显下降,粪常规检查:可见有大量脂肪球,X线腹平片显示上腹中部多发钙化点,其他检查无异常。根据临床诊断,应选用的药物是
从作品题材和审美感受方面,简要说明中国画《捣练图》与油画《拾穗》两幅作品的共同点和不同点。
阅读以下说明,回答下列问题,将解答填入答题纸对应的解答栏内。【说明】某公司有市场部和财务部两个部门,每个部门各有20台PC,全部接到一个48口交换机上,由一台安装Linux的服务器提供DHCP服务。网络拓扑结构图如图3—1所示。
A、Itwillmakeyouanalyzeothers’argumentsbetter.B、Itwillhelpyouhavebetterconversations.C、Itwillinspireyoutonew
BritishCuisine:TheBestofOldandNewBritishcuisine(烹饪)hascomeofageinrecentyearsaschefs(厨师)combinethebestof
最新回复
(
0
)