首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设有一个双向链表h,每个结点中除有prior,data和next三个域外,还有一个访问频度域freq,在链表被起用之前,每个结点中的freq域都被初始化为零。每当进行LocateNode(h,x)运算时,令元素值为x的结点中freq域中的值加一,并调整表中
设有一个双向链表h,每个结点中除有prior,data和next三个域外,还有一个访问频度域freq,在链表被起用之前,每个结点中的freq域都被初始化为零。每当进行LocateNode(h,x)运算时,令元素值为x的结点中freq域中的值加一,并调整表中
admin
2012-06-21
104
问题
设有一个双向链表h,每个结点中除有prior,data和next三个域外,还有一个访问频度域freq,在链表被起用之前,每个结点中的freq域都被初始化为零。每当进行LocateNode(h,x)运算时,令元素值为x的结点中freq域中的值加一,并调整表中结点的次序,使其按访问频度的递减序列排序,以便使被频繁访问的结点总靠近表头,试写一符合上述要求的LocateNode运算的算法。
选项
答案
在DLinkList类型的定义中添加freq域(int类型),给该域初始化为0。在每次查找到一个结点*p时,使其freq域增1,再在*p结点的前面找到一个结点*q,它或是头结点或是满足q->freq>=p->freq,然后删除*p结点,使其插入到*q结点之后。 算法描述如下: int LocateNode(DLinkList*h,ElemType x) { DLinkList *p=h->next,*q; while(p!=NULL&&p->data!=x) p=p->next; //找data域值为x的结点*p if(p==NULL) //未找到这样的结点 return 0: }else{ //找到这样的结点*p p->freq++; //频度增1 q=q->prior; //*q为*p前驱结点 if(q!=h) //若’p为第一个数据结点,则不移动 { while(q!=h&&q->freq<p->freq)//找到*q结点,使q->freq>=p->freq q=q->prior; p->prior->next=p->next; //先删除*p结点 if(p->>next!=NULL) p->next->prior=p->prior; p->next=q->next; //将*p结点插入到*q结点之后 if(q->next!=NULL) q->next->prior=p; q->next=p; p->prior=q; } return 1; } }
解析
转载请注明原文地址:https://kaotiyun.com/show/Y8xi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
汉武帝时期,在民族关系上采取了一系列措施,其中不包括()。
下列不是美国独立战争与美国内战的相同点的是()。
下列不属于清统治者加强文化专制和思想控制的是()
马克思创立马克思主义哲学时,吸收了被列宁称之为“基本内核”的哲学思想,该思想的创立者是()。
中共七届三中全会以后进行的工商业合理调整,其核心内容是调整()。
第三次科技革命推动了国际经济的调整,表现在()。①加速了世界经济的一体化②缩小了发展中国家与发达国家的贫富差距③推动了国际产业的分工④导致了西方大国经济地位的调整
最早测量子午线的长度,并主持修订了当时最先进历法《大衍历》的是僧人()。
最晚到汉武帝时期,出现了我国第一部算学著作(),它记载了用竿标测日影以求日高的方法,从而认识了勾股定理。
詹天佑自主设计修建了中国第一条铁路是在()。
支持多道程序的操作系统,区别于其他操作系统的主要特征为()。
随机试题
在经济法的基本原则中,调制绩效原则更强调【】
为进一步促进外贸和经济持续健康发展,我国实施出口退税机制改革,改革的具体内容包括
某患者,试戴锤造冠,在口外代型上,壳冠试合均好,但在口内的基牙上,冠无法就位,其主要原因是
关于胃肠内在神经丛的描述,正确的是
下列对招标人组织评标委员会评标时,应注意问题的描述,不正确的是()。
李某2009年3月从中国境内取得不含税一次性奖金48000元;当月工资薪金所得1500元;从美国取得稿酬收入10000元,已按美国税法规定缴纳了个人所得税1100元,则李某当月应申报缴纳个人所得税()元。
0℃并不意味着没有温度,这种说法()。
Burnrateisthespeedatwhichastartupbusinessconsumesmoney.Myratewouldbe$50,000amonthwhenmynewmediacompanys
销售库中有"产品表"(产品编码,产品名称,单价),另有"新品表"(产品编码,产品名称,单价)。根据产品编码,一件产品只在"新品表"中出现,则要将该产品追加到"产品表"中;如果一件产品在"产品表"和"新品表"中同时出现,则用"新品表"中的单价修改"产品表"中
WhichpairofwordsisNOTaminimalpair?
最新回复
(
0
)