首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知一个带头结点单链表的结点类型nextNode定义为struct nextNode{int data;int freq;struct nextNode *next; };其中,data为结点值域,freq为该结点元素的访问计数,初始为O;next为指向链
已知一个带头结点单链表的结点类型nextNode定义为struct nextNode{int data;int freq;struct nextNode *next; };其中,data为结点值域,freq为该结点元素的访问计数,初始为O;next为指向链
admin
2017-04-28
35
问题
已知一个带头结点单链表的结点类型nextNode定义为struct nextNode{int data;int freq;struct nextNode *next; };其中,data为结点值域,freq为该结点元素的访问计数,初始为O;next为指向链表中该结点后继结点的指针域,设该链表所有结点按照freq值从大到小链接。请设计一个时间和空间上尽可能高效的算法,编写一个查找函数Search,从链表首结点开始查找结点data值与给定值相等的结点。如果找到,则将该结点的freq值加1,然后把它前移到与结点freq值相等的结点的后面,使得所有结点仍然都保持按照freq值从大到小链接。
根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
算法描述如下: bool selfOrganizationList (nextNode *f,int value,nextNode*&p); nextNode *pre,*q; p=f—>next; q=pre=f; while(p !—NULL&&p—>data !=value) { //出现次数改变的时候记录q if(pre !=f&&pre—>freq>p—>freq) q=pre; pre=p; p=p—>next; } //找不到的时候返回 if (p==NULL) return false; p—>freq++; pre—>next=p—>next, p—>next=q—>next; q—>next=p; return true; }; }
解析
转载请注明原文地址:https://kaotiyun.com/show/CWRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
欧洲第二战场的开辟过程及其意义。
中国共产党制定的抗日民族统一战线策略总方针的中心环节是()。
1925年爆发的当时世界上罢工时间最长的一次斗争是()。
二战以来,资本主义经济在发展中出现了许多新问题,这主要表现在()
以孙中山为首的革命派和以康有为代表的维新派,是推动近代中国社会变革的两个重要派别。两派主张的主要分歧在于()
印度种姓制度中,处于被剥削被压迫地位的两个瓦尔那是()①婆罗门②刹帝利③首陀罗④吠舍
1141年,金与南宋双方签订协议,规定以淮水和大散关为宋金的分界线,此协议称为()。
IP数据报的报文格式如下图所示。在没有选项和填充的情况下,报头长度域的值为()。
在操作系统中,P,V操作是一种()。
随机试题
以下关于内脏性疼痛特点的描述,正确的是
能与绵羊红细胞结合的CD分子是
急性肾损伤少尿期最常见的血镁、磷、钙代谢异常是
下列设备寿命中,最长的是()。
新课程改革明确规定高中阶段课程以()为主。
(2012—单选—18)该区域的主要气候灾害是()。
重金属摇滚
证明:用二重积分证明
在说明语句int*f();中,标识符f代表的是______。
He______workingtillhewasseventyyearsold.
最新回复
(
0
)