首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设有一个双向链表h,每个结点中除有prior、data和next共3个域外,还有一个访问频度域freq,在链表被起用之前,每个结点中的freq域的值均被初始化为零。每当进行LocateNode(h,x)运算时,令元素值为x的结点中freq域的值加1,并调整
设有一个双向链表h,每个结点中除有prior、data和next共3个域外,还有一个访问频度域freq,在链表被起用之前,每个结点中的freq域的值均被初始化为零。每当进行LocateNode(h,x)运算时,令元素值为x的结点中freq域的值加1,并调整
admin
2013-12-31
69
问题
设有一个双向链表h,每个结点中除有prior、data和next共3个域外,还有一个访问频度域freq,在链表被起用之前,每个结点中的freq域的值均被初始化为零。每当进行LocateNode(h,x)运算时,令元素值为x的结点中freq域的值加1,并调整表中结点的次序,使其按访问频度的递减序列排序,以便使频繁访问的结点总是靠近表头。试写一符合上述要求的LocateNode运算的算法。
选项
答案
算法如下: int LocateNode(DuLlnkList&h,ElemType x){ DuLinkList 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/wSxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
布雷顿森林体系的建立对世界历史产生的重大影响是()。
苏俄同德国签订《布列斯特和约》的根本目的在于()。
二战后的半个世纪中,资本主义各国经济史上的五个周期阶段。
第三世界所共有的特征及崛起的标志是什么?
(《战国策.秦策》)孝公死,惠王代后……人说惠王日:“大臣太重者国危,左右太亲者身危。今秦妇人婴儿比商君之法,莫言大王之法,是商君反为主,大王更为臣也。”文中对惠王说话的人,代表了当时()的利益。
清初设置的两个“办事大臣”是()。①宁古塔②西宁③库伦④西藏
论述新石器时代及其文化类型。
请根据下面材料,结合相关知识,分析其内容及意义。他命令所有罗马人都进行登记并用银对自己的财产估价,按照习惯宣誓保证所报各项均属真实,全部财产均已按最高价格估价,并陈报父亲系何人,自己的年龄,自己的妻子和子女的名字,每人的籍贯隶属市中哪个部落或乡间
坦克被第一次实际用于作战是在()。
1984年,《中共中央关于经济体制改革的决定》中强调,商品经济的充分发展是社会经济发展不可逾越的阶段,市场调节的辅助性作用不可缺少,并指出要有步骤地逐步缩小指令性计划的范围。这表明当时我国()
随机试题
经济法是调整国民经济运行过程中所形成的经济关系的法律规范的总称。下列选项中,属于经济法这个法律部门的是【】
WindowsXP的任务栏可以改变位置和尺寸。
y’=的通解为()
应考虑的诊断是下述哪项是导致胎儿宫内窘迫的根本原因
在生产工艺技术与装备方案编写内容与要求中,主要设备选择时,对于进口设备,应详细阐述()。
甲省乙市开源公司(注册地位于乙市丙区)经乙市市场监督管理局核准取得《企业法人营业执照》,从事某类产品生产经营。后来,甲省商务厅函告开源公司:按照甲省地方性法规最新规定,新建此类企业必须到省商务厅办理某种生产经营许可证后,方可向当地市场监督管理局申请企业登记
最原始、最简单的部门划分方法是()。
已知a,b,c分别是△ABC的三个内角A,B,C所对的边,若a=1,b=,A+C=2B,则sinC=_________.
为解决在多重继承环境中因公共基类带来的【】问题,C++语言提供了虚基类机制。
下面程序的运行结果是()。#includeintx=5;intfun(inta){intc;C=X*a:returnc;}void
最新回复
(
0
)