首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域Iink。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域Iink。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)
admin
2017-01-04
39
问题
有一个不带头结点的单链表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月,发表《立宪法议》,首先提出君主立宪要求的是()。
全国高校院系调整的具体时间是()。
已知一个带有表头结点的单链表,结点结构为:假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。要求:
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
随机试题
--Whatdoyouthinkofthe______car?--Ithinkitmuchbetterthanhis______one.
下列证候除何项以外,均为桂枝汤的适应证
危险源是导致事故的根源,它是整个职业健康安全管理体系的核心问题。()
根据《支付结算办法》的规定,下列各项中,属于无效票据的有()。
甲某将自己的一间私房出租给其同事乙某居住,双方签订租赁协议,约定租期为2年,月租金1000元。其他事项未约定。在租赁期间,当事人以下行为合法的有()。
债权人转让权利时不必经债务人同意,只要告知即可。()
经济结构中的产业结构变化必将引起高等教育科类结构的变化。()
关于学校教育在人的发展中的作用,下列表述正确的是()。
近来,山东省青岛市连续发生了数起中学生群殴事件:有的被同学打得不敢上学、有的被狂扇耳光、有的甚至被强制拍摄自己被打的情景……不少公众发出疑问,这些原本发生在成人世界的恶性斗殴事件,为何频频发生在未成年人身上?是什么让这些中小学生屡屡向同伴挥起拳头甚至持刀相
在对称加密体制中必须保密的是______。
最新回复
(
0
)