首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设有一个双向链表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
56
问题
设有一个双向链表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://www.kaotiyun.com/show/wSxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列不是空想社会主义产生的历史背景的是()。
曹操统一北方的关键战役是()。
关于荷马时代的叙述,不正确的是()。
建立帝国财政收支总账和元首金库,直接控制和调节全国财政收支的是()。
克里特文明的文字类型是()。
关于“尊王攘夷”运动,不正确的说法是()。
人类史上第一部能实际应用的蒸汽机是()。
关于垄断组织的积极作用,不正确的说法是()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
随机试题
关于中枢化学感受器的叙述,下列哪项是错误的
A.恶寒发热B.但寒不热C.但热不寒D.寒热往来E.恶风微热汗出
男,47岁。右上第一磨牙残冠,拔除术中发生折断。在拔除断根之前应进行的准备工作中,错误的是
男,43岁。反复咳嗽、咳脓痰10年,加重5天入院。吸烟史15年,已戒10年。查体:右下肺可闻及较多湿啰音及少量哮鸣音。可见杵状指,胸部X线片示右下肺纹理增粗、紊乱。该患者应首先考虑的诊断是
根据我国《票据法》,下列关于本票的说法哪一项是错误的?()
高层建筑物箱形基础施工在后浇带施工缝处,钢筋()。
以“过生日”为主题,设计一个幼儿园大班的活动方案。
A、 B、 C、 D、 A本题需构造空间,第一套图形中,想象所有的方块处在一个九宫格的边缘,呈顺时针旋转移动,此规律应用到第二套图形中可见选A。
下列我国古代国家行政机构不具有行政监察职能的是:
下列过程的功能是:将输入的整数分解为质数之乘积。例如,输入18,则输出2,3,3,,输入125,则输出5,5,5,。PrivateSubCommand_Click()x=Val(InputBox(“请输入一个整数”))out$=“”y=2Do
最新回复
(
0
)