首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域link。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域link。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)
admin
2019-01-16
40
问题
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域link。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求:
(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){ 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
data)q=q一>link; p->link=q->link; //将当前排序结点链入有序链表中 q一>link=P; } P=r; //p指向下个待排序结点 } }
解析
转载请注明原文地址:https://kaotiyun.com/show/6aRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
两宋之交活跃于太行山一代,脸上刺有“赤心报国,誓杀金贼”的一支义军是()。
阅读下列材料,并回答问题:当时帝国地跨欧亚非三洲。地中海成为它的内湖。境内农业、手工业和商业发展起来,海路畅通无阻,陆路纵横交错、四通八达,促进了贸易发展,也有利于信息传递和军队调防。帝国同北欧、印度、中国都有贸易往来,中国的丝绸也传到帝国。原来较落后的
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
沙俄企图侵占中国东北地区,制造“海兰泡惨案”的时间是()。
我国第一部系统的史学理论著作是()。
晚清时期清帝年号的正确排序是
巴黎和会上,英美主张把原德国在山东的权利转让给日本,华盛顿会议又表示支持中国让日本归还山东的要求,英美态度发生变化的根本原因是()。
汉章帝会群儒于白虎观,讨论经义,由()写成《白虎通德论》(又称《白虎通义》、《白虎通》)一书,这部书系统地吸收了阴阳五行和谶纬之学,形成今文经学派的主要观点。
系统阐明社会主义初级阶段理论是在()。
随机试题
机器单采浓缩白细胞悬液保存最佳温度为
关于光电效应的产物,正确的是
水洗的主要目的是
葡萄糖的特殊杂质检查包括( )。
恩格斯在《致约,布洛赫》一信中曾经指出:“根据唯物史观,历史过程中的决定性因素归根到底是现实生活的生产和再生产。无论马克思或我都从来没有肯定过比这更多的东西。如果有人在这里加以歪曲,说经济因素是惟一决定性的因素,那么他就是把这个命题变成毫无内容的、抽象的、
关于静力压桩法特点的表述正确的是()。
对施工过程中发生的质量问题、质量事故进行查处的处理意见通常不包括()。
下列属于基金管理人会计系统控制措施的有()。Ⅰ.建立复核制度Ⅱ.规范基金清算交割工作Ⅲ.制定完善的会计档案保管和财务交接制度Ⅳ.建立账务组织和账务处理体系Ⅴ.建立严格的成本控制和业绩考核制度
社会工作者利用家访、教育讲座等形式,为社区居委会选举做准备。引导居民认识和关心居委会的功能,正确行使权利,履行义务。社会工作者运用的是()
某人编写了下面的程序:PrivateSubCommand1=1_Click()DimaAsInteger,bAsIntegera=InputBox("请输入整数")b=InputBox("请输入
最新回复
(
0
)