首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知非空链表A,其指针是list,链表中的结点由两部分组成:数据域data和指针域link。设计一个算法,将链表中数据域值最小的那个链结点移到链表的最前面,在不额外申请新的链结点的情况下,使得算法时间复杂度和空间复杂度尽可能低。要求: (1)给出算
已知非空链表A,其指针是list,链表中的结点由两部分组成:数据域data和指针域link。设计一个算法,将链表中数据域值最小的那个链结点移到链表的最前面,在不额外申请新的链结点的情况下,使得算法时间复杂度和空间复杂度尽可能低。要求: (1)给出算
admin
2017-01-04
77
问题
已知非空链表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://www.kaotiyun.com/show/ehRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列改革内容不是在《天朝天亩制度》中提出的一项是()
试述卡德纳斯改革的背景、内容、性质及意义。
简述大化改新的内容并对其评价。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
院系调整
罗斯福新政的中心措施是对()的调整。
在一个长度为n(n>1)的带头结点的单链表h上,设有尾指针r(指向尾结点),则执行()操作与链表的长度有关。
已知一个带有表头结点的单链表,结点结构为:假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。要求:
随机试题
儿童短骨骨结核最具特征的X线表现为
(2005年)如果两个偏振片堆叠在一起,且偏振化方向之间夹角为60°,假设二者对光无吸收,光强为I0的自然光垂直入射到偏振片上,则出射光强为()。
室内给水管道安装工程中,给水塑料管的安装要求包括()。
现金的使用范围包括()。
某企业2015年可比产品按上年实际平均单位成本计算的本年累计总成本为4500万元,按本年计划单位成本计算的本年累计总成本为4000万元,本年累计实际总成本为4200万元。则可比产品成本的降低额为()万元。
广义的教育包括()。
在讲解“除数是小数的除法”这一内容时,某老师把学生的分12个馒头的回答计算板书了出来:12÷3=4(人),12÷2=6(人),12÷1=12(人),12÷0.5=24(人),与这一做法不相符的有()。
我国南方的“社日”节在北方地区称为:
8255A的端口A工作在方式2时,如果端口B工作在方式1,则固定用作端口B的联络信号的端口的信号是( )。
编写如下程序代码:PrivateSubCommand1_Click()DimtAsIntegerDimnAsInteger,xAsIntegert=0Forn=1To12
最新回复
(
0
)