首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域Iink。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域Iink。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)
admin
2017-01-04
34
问题
有一个不带头结点的单链表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://jikaoti.com/ti/pOfjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
简述雅尔塔体系的内容和影响。
试述卡德纳斯改革的背景、内容、性质及意义。
我国对资本主义工商业采取和平赎买的政策内容和成功意义。
十六国时期的历史,可以划分为前后两个时期,其分界线是()。
毛泽东认为,社会主义这个阶段可分为两个阶段,包括()。
在巴黎和会上获利最大的两个国家是()。
“瓜步之战”发生在下列哪两个政权之间?()
西汉末年,()对太初历作了系统的解释,并调整为三统历。这是中国第一部记载完整的历法。
苏联实行的新经济政策与美国推行的罗斯福新政之间的相似之处是()。①面临极为困难的经济形势②最主要内容是调整和复兴工业③国家颁布法令强制干预经济④通过发展商品经济生产来恢复农业
设某多道程序系统中有用户使用的内存1000M,打印机1台。系统采用可变分区动态分配算法管理内存,而对打印机采用静态分配。假设输入输出操作时间忽略不计,采用最短剩余时间优先的进程调度算法,进程最短剩余时间相同时采用先来先服务的算法,进程调度时机选择在进程执
随机试题
用立铣刀加工内球面,在计算范围内应选用较小直径的立铣刀。
根据《药品注册管理办法》,中药、天然药物注册可分为()。
进行混凝土碳化深度测试时,每测区应布置()个测孔。
施工组织设计审查,由()审核签认。
由普通合伙人和有限合伙人组成,普通合伙人对企业债务承担无限连带责任,有限合伙人以其认缴的出资额为限对合伙企业债务承担责任的企业是()。
甲公司正在编制全面预算,下列各项中,以生产预算为编制基础的有()。
《中华人民共和国未成年人保护法》规定,公安机关、人民检察院讯问未成年犯罪嫌疑人,询问未成年证人、被害人,应当通知()到场。
贾某在某停车场停车,每个月前几个小时内收费的基础价格为5元/小时,之后按照基础价格的90%收费。某月贾某的停车时间为120小时,共交了545元,则按照基础价格收费的时间为多少小时?
当x→0时,一1~cos2x一1,则a=________.
设B≠0为三阶矩阵,且BA=0,则r(B)=________.
最新回复
(
0
)