首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域Iink。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域Iink。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)
admin
2017-01-04
33
问题
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域Iink。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
(1)算法的基本设计思想:本题实质上是一个排序问题。链表上的排序采用直接插入排序比较方便,即首先假定第一个结点有序,然后,从第二个结点开始,依次插入到前面有序链表中,最终达到整个链表有序。 (2)算法设计如下: typedef struct LNode{ int data; struct LNode *link; }*linkedlist; LinkedList LinkListSort(LinkedList list){ Lnode*p,*q; p=list一>link; //p是工作指针,指向待排序的当前元素 list一>link=null; //假定第一个元素有序,即链表中现只有一个结点 while(P!=null)f r=p一>link; //r是P的后继 q=list; if(q一>data>p一>data){ //处理待排序结点P比第一个元素结点小的情况 p一>link=list: list=p;//链表指针指向最小元素 } else{ //查找元素值最小的结点 while(q一>link==null&&q一>link一>data<p一>data)q=q一>link; p一>link=q一>link;//将当前排序结点链入有序链表中 q一>link=P; } P=r; //p指向下个待排序结点 } }
解析
转载请注明原文地址:https://kaotiyun.com/show/YhRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
西哥特人图鲁兹建立起第一个得到罗马帝国承认的蛮族王国——西哥特王国的时间是()。
下列改革内容不是在《天朝天亩制度》中提出的一项是()
法国《人权宣言》的主要内容有哪些?
1901年6月,发表《立宪法议》,首先提出君主立宪要求的是()。
十六国时期的历史,可以划分为前后两个时期,其分界线是()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
1950年,人民政府开始全面调整工商业,采取了对私营工商业的加工订货、向农民收购土副产品、用协商方式解决劳资纠纷等措施。这些措施的主要任务是()
设某多道程序系统中有用户使用的内存1000M,打印机1台。系统采用可变分区动态分配算法管理内存,而对打印机采用静态分配。假设输入输出操作时间忽略不计,采用最短剩余时间优先的进程调度算法,进程最短剩余时间相同时采用先来先服务的算法,进程调度时机选择在进程执
随机试题
e和o的区别在于()。
NineofthetencampusesoftheUniversityofCalifornia—ledbyBerkeley—onceagainmadeitintoanannualrankingoftheworld’
人被狂犬咬伤后是否发病,影响最小的因素是()
中毒后洗胃时间窗应是在
泽泻粉末中可见
下列建设工程项目招标投标活动中,属于合同承诺行为的是()。
消防用电设备的配电线路应满足在外部火势作用下,保持线路完整性、维持通电的要求,根据地铁发生火灾的危险性、疏散和扑救难度,不属于电线电缆的选择和敷设方式应满足的要求的是()。
下列各句中,画线词语能被括号中的词语替换且不改变句意的一项是:
标志着两极格局终结的标志是()
Thespecial-effectsrevolutionbeganinthemid-1980swithStarWars.Byage10,Murenwasabletousecomputergraphicstomak
最新回复
(
0
)