首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知非空链表A,其指针是list,链表中的结点由两部分组成:数据域data和指针域link。设计一个算法,将链表中数据域值最小的那个链结点移到链表的最前面,在不额外申请新的链结点的情况下,使得算法时间复杂度和空间复杂度尽可能低。要求: (1)给出算
已知非空链表A,其指针是list,链表中的结点由两部分组成:数据域data和指针域link。设计一个算法,将链表中数据域值最小的那个链结点移到链表的最前面,在不额外申请新的链结点的情况下,使得算法时间复杂度和空间复杂度尽可能低。要求: (1)给出算
admin
2017-01-04
94
问题
已知非空链表A,其指针是list,链表中的结点由两部分组成:数据域data和指针域link。设计一个算法,将链表中数据域值最小的那个链结点移到链表的最前面,在不额外申请新的链结点的情况下,使得算法时间复杂度和空间复杂度尽可能低。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
(1)算法的基本设计思想:首先要查找最小值结点。将其移到链表最前面,实质上是将该结点从链:上摘下(不是删除并回收空间),再插入到链表的最前面。 (2)算法的实现如下: typedef struct LNode{ char data; struct LNode*link; }*Linkedlist; LinkedList delinsert(LinkedList list){ //将链表中数据域值最小的那个结点移到链表的最前面 Linkedlist*P,*pre,*q; P=list一>link: //p是链表的工作指针 pre=list; //pre指向链表中数据域最小值结点的前驱 q=P; //q指向数据域最小值结点,初始假定是第一结点 while(p一>link!=null){ if(p一>link一>data<q一>data){pre=P;q=p一>link;} //找到新的最小值结点 p=p一>link; } if(q!=list一>link){ //若最小值是第一元素结点,则不需再操作 pre一>link=q一>link://将最小值结点从链表上摘下 q一>link=list一>link; //将q结点插到链表最前面 list一>link=q; } }//算法结束
解析
转载请注明原文地址:https://kaotiyun.com/show/ehRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
十六国时期的历史,可以划分为前后两个时期,其分界线是()。
1901年6月,发表《立宪法议》,首先提出君主立宪要求的是()。
下列事件:①上党战役②九三学社成立③“一二·一”惨案④《双十协定》签订,按照时间顺序排列正确的是()。
1901年6月,发表《立宪法议》,首先提出君主立宪要求的是()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
苏联实行的新经济政策与美国推行的罗斯福新政之间的相似之处是()。①面临极为困难的经济形势②最主要内容是调整和复兴工业③国家颁布法令强制干预经济④通过发展商品经济生产来恢复农业
()是二战后一个调整各国贸易关系的法律框架,又是一个进行多边贸易谈判、争夺市场的场所,还是一个调解和解决争议的机构。
已知一个带有表头结点的单链表,结点结构为:假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。要求:
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
随机试题
ThebookwasAsoboredthatIBreturneditCtothelibraryDwithoutfinishingit.
(2007年第92题)男性,30岁,由5米高处跌下2小时,腹痛来院,BP100/70mmHg,P120次/分,腹膜刺激征(+),血红蛋白100g/L,X线片示右膈升高。初步诊断是
人民法院受理破产申请前1年内,涉及债务人财产的下列哪些行为,管理人有权请求人民法院予以撤销?()
Windows对话框的()是给用户提供输入信息的。
在收购过程中,收购企业主要面临的风险有( )。
刘某在甲公司工作2年,在乙公司工作5年,在丙公司工作4年。丙公司安排刘某在“十一”期间休带薪年休假。则刘某应当享有的带薪年休假为()天。
关于牙外伤的不正确的说法是()。
Inthe16thand17thcenturies,twopersonshelpedlaythefoundationofmoderneducation.Comenius,aCzechhumanist,greatlyin
A、Two.B、Four.C、Five.D、Six.D选项的内容表明,本题考查数字信息。对话中女士询问男士的寝室住了多少人,但男士并没有直接回答,而是说他同五个人住一起,因此寝室一共是住了六个人,故答案为D)。
Tosaythatthechildlearnsbyimitationandthatthewaytoteachistosetagoodexampleoversimplifies.Nochildimitatese
最新回复
(
0
)