首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
admin
2019-08-01
77
问题
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
选项
答案
首先计算关键字的散列地址,若该地址为空,则空操作;若该地址有关键字,但与给定值不等,则用解决冲突的方法去查找给定值;若该地址有关键字且与给定值相等,则执行删除。题目要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不断裂。由于用线性探测解决冲突,设被删除元素的散列地址为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://www.kaotiyun.com/show/zkCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
1922年2月,美、英、法、意、日五国通过了《五国海军条约》,规定了各国海军主力舰和航空母舰的限额,以及在东亚设置海军基地的要求等内容。该条约的缔结表明()
日本文化逐渐摆脱对中国文化的简单模仿,由所谓唐风文化转向具有日本特点的国风文化是在()。
以下不属于泰州学派的哲学思想的是()。
1920年,苏俄农民中流传着这样的说法:“土地属于我们,面包却属于你们;水属于我们,鱼却属于你们;森林属于我们,木材却属于你们”,它反映的是战时共产主义政策()。
1900年10月修订《英、德扬子协定》规定:将中国之江河及沿海各口岸各国贸易及其他正当经济活动,自由开放,毫无差别并知会各国。该协定:
第二次世界大战后,资本主义经济出现的新特点有()。①美国资本加强了对西欧和日本的渗透②国家开始参与资本主义生产过程③国家成为资本主义私有制的保护者④科技成果更为迅速地转化为生产力
格拉古兄弟改革
在请求页式系统中,一程序的页面走向(访问串或引用串)为2,3,4,5,2,3,6,2,3,4,5,6,设分配给该程序的存储块数为m。试分别计算m=3和m=4时,FIFO和LRU两种替换算法的缺页(页故障)数,并给出:结果说明了什么?
Demandpaging算法是paging算法在虚拟存储空间管理的扩展。其主要的改进是:仅当需要访问某页面时,如果它不在内存,把它调入内存。按照这个思路,将segmentation算法(段式存储管理算法)扩展到虚拟存储空间管理,也可以产生类似的算法,不妨
计算机系统采用补码运算是为了()。
随机试题
女性,40岁,已婚。下腹部坠胀痛20天,剧痛2小时。3小时前妇科检查后出现腹痛加剧,1小时后突然出现晕厥、休克,持续约30分钟,经输液等抢救清醒后转上级医院。9年前因交通事故致“肠破裂”行手术修补,否认肝炎、结核等传染病史。月经规律,13岁初潮,5/30天
人民法院适用普通程序审理案件,应当自立案之日起()审结。
()是指通过对违反会计职业道德行为和违法会计行为典型案例进行讨论和剖析,从中得到警示,提高法律意识,加强会计职业道德观念和辨别是非的能力。
下列选项中,( )不属于要约发出以后,不发生效力或消灭其效力的情况。
消费税不是在生产、流通、消费所有环节征收,其纳税环节主要是在生产经营过程中的某一特定环节。()
在消化过程中分解为糖的食物是人体血液内葡萄糖的来源,饮用咖啡后,在消化过程中并不能分解为糖。然而,人饮用不加糖和奶的咖啡后,也会引起血液葡萄糖的大量增加。以下哪项帮助解释咖啡对血液葡萄糖水平的作用?
设函数f(x)在区间[0,4]上连续,且,求证:存在ξ∈(0,4)使得f(ξ)十f(4一ξ)=0.
Canadianpoliceand【D1】______teamswereworkingTuesdayafternoonto【D2】______about300peoplestrandedafterwhatalocaloffic
ExchangeRates:ABriefHistoryofExchangeRatesForcenturies,thecurrenciesoftheworldwerebackedbygold.Thatis,a
A、Peoplewhoeatspoiledfoodmaygetsick.B、Farmershavetothrowawayspoiledproducts.C、Farmershavetosellthespoiledpr
最新回复
(
0
)