链表归并成递减c语言,将两个递增的单链表合并为一个递减的单链表

问题描述:

假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。

问题解答:

算法思想:两个链表已经按元素值递增次序排序,将其合并时,均从第一个结点起进行比较,将小的结点链入链表中,同时后移工作指针。该问题要求结果链表按元素值递减次序排列,故新链表的建立应该釆用头插法。比较结束后,可能会有一个链表非空,此时用头插法将剩下的结点依次插入新链表中即可。

void MergeList(LinkList &La,LinkList &Lb) {

//合并两个递增有序链表(带头结点),并使合并后的链表递减排列

LNode *r, *pa=La->next, *pb=Lb->next; //分别是表 La 和 Lb 的工作指针

La->next = NULL; //La作为结果链表的头指针,先将结果链表初始化为空

while(pa&&pb) //当两链表均不为空时,循环

if(pa->data<=pb->data){

r=pa->next; //r暂存pa的后继结点指针

pa->next=La->next;

La->next=pa; //将pa结点链于结果表中,同时逆置(头插法)

pa=r; //恢复pa为当前待比较结点

}else{

r=pb->next; //r暂存pb的后继结点指针

pb->next=La—>next;

La->next=pb; //将pb结点链于结果表中,同时逆置(头插法)

pb=r; //恢复pb为当前待比较结点

}

if(pa)

pb=pa; //通常情况下会剩一个链表非空,处理剩下的部分

while(pb){ //处理剩下的一个非空链表

r=pb->next; //依次插入到La中(头插法)

pb->next = La->next;

La->next = pb;

pb=r;

}

free(Lb);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强烈推荐!孩子的科普从这套全球畅销250万册的最酷科学书起步

在马斯的学生时代的记忆中&#xff0c;数学定义定理、化学方程式、物理公式……这些科学知识点总是冷冰冰的&#xff0c;枯燥、深奥也总是科学的代名词。如今教育局明确规定科学课是小学必修课&#xff0c;孩子也逐步接受科学知识的熏陶。但科学课上冷冰冰的&#xff0c;枯燥、…

技术分享|手机推送原理剖析指南

源宝导读&#xff1a;本文旨在对手机推送原理进行剖析和阐述&#xff0c;对业务开发做一些方向性的解惑。一、手机推送的基本概念 ——什么是手机推送&#xff1f;百度词条&#xff1a;手机推送服务是指服务器 定向将信息实时送达手机的服务词条中有2组概念&#xff1a;第一组是…

IO控制命令

ioctl 控制套接字IO行为&#xff0c;获取套接字未决IO的信息。 向套接字发送ioctl命令的函数有两个 一个是源于winsock1 的 ioctlsocket 另一个是 winsock2 新引进的 WSAIoctl ioctl的常用命令&#xff1a; FIONBIO:将套接字设置于非阻塞模式 FIONREAD&#xff1a;返回套接字上…

闽高校计算机二级c语言模拟器,闽高校计算机二级C语言模拟卷及答案.doc

闽高校计算机二级C语言模拟卷及答案.doc (54页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.90 积分&#xfeff;一、单项选择题(每小题2分&#xff0c;共20分)1.以下4组用户定义标识符中&#xf…

重磅!中国最赚钱的公司,要上市了!

全世界只有3.14 % 的人关注了数据与算法之美12月31日&#xff0c;中国烟草子公司中烟国际&#xff08;香港&#xff09;神秘地向香港交易所递交了IPO的材料&#xff0c;赶上了2018年的末班车。嫡子上市&#xff0c;中国烟草自己向众人掀起了裙裾一角。过去三年&#xff0c;中烟…

浅谈VS2012单元测试

1、先建一个工程此工程带有待测试的方法 2、在解决方案中建立单元测试 3、在测试项目中添加测试项目的引用 4、写测试用例 namespace UnitTestProject1 {[TestClass]public class UnitTest1{[TestMethod]public void TestMethod1(){var restClient (IRestClient)new JsonServi…

我写代码时的小倔强

分享自己写代码时的好习惯&#xff0c;让你的编程能力突飞猛进&#xff01;大家好&#xff0c;我是鱼皮&#xff0c;上回说到&#xff0c;很多同学在学编程时不注重代码质量&#xff0c;养成坏习惯的同时&#xff0c;失去了提升自己编程能力的机会。还没读上篇文章的同学&#…

c语言管理系统信息以文件保存,求大神给一份能用的c语言的学籍管理系统:且能进行文件保存...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#pragma comment(lib,"libmysql.lib")void showmenu(){system("cls");prinft("\n\n\n\n\n");prinft("\t ┏━━━━━━━━━━━━━━━━━━━━━━━┓ \n");prin…

10个舍不得删的高质量公号

全世界有3.14 % 的人已经关注了数据与算法之美在信息爆炸的时代快节奏的生活里 你是否曾有一瞬间觉得忙碌而空虚&#xff1f;以下10个优质公众号能让你在闲暇的时候不断的提升自我&#xff0c;拓宽视野愿以书卷气&#xff0c;行我路千里历史学资讯ID&#xff1a;tongbanlishi▲…

数据初始化

成员初始化&#xff1a;java保证所有变量在使用前必须初始化。对于方法的局部变量&#xff0c;java以编译时错误的形式来保证&#xff0c;所以如果写成&#xff1a;void f(){int i;i; //Error.. i not initialized}会得到一条错误信息&#xff0c;告诉你i 可能尚未初始化。当然…

ML.NET Cookbook:(7)如何训练回归模型?

通常&#xff0c;为了在ML.NET中训练任何模型&#xff0c;您将经历三个步骤&#xff1a;弄清楚训练数据如何以IDataView形式进入ML.NET。将“学习管道”构建为一系列基本的“运算符”&#xff08;估计器&#xff09;。在管道上调用Fit以获得经过训练的模型。示例文件[1]:featur…

android动画送礼物,Android仿直播类app赠送礼物功能

直播界面实现的是播放本地的视频文件&#xff1a;/*** 直播界面&#xff0c;用于对接直播功能*/public class LiveFrag extends Fragment {private ImageView img_thumb;private VideoView video_view;NullableOverridepublic View onCreateView(NonNull LayoutInflater inflat…

一张纸一幅图,竟然提高了10倍的学习和工作效率!?

人类大脑的容量远远超出一般人的想象&#xff0c;时到21世纪的今天&#xff0c;我们对大脑的运用远远不够。大脑机能的使用率基于我们的思维模式&#xff0c;而思维导图正是开发大脑中最有效的利器&#xff01;之前小木给大家推荐了一套基于少儿大脑思维开发的书籍——东尼博赞…

ftp 使用

先假设有一FTP服务器&#xff0c;FTP服务器&#xff1a;qint.ithot.net&#xff0c;用户名&#xff1a;username 密码&#xff1a;user1234。在本地电脑D&#xff1a;盘创建一个文件夹"qint"。将要上传的文件复制到d:\qint里。通过FTP命令将文件从本地上传&#xf…

C# 消息队列之MSMQ

首先说一下&#xff0c;消息队列 (MSMQ Microsoft Message Queuing)是MS提供的服务&#xff0c;也就是Windows操作系统的功能&#xff0c;并不是.Net提供的。消息队列&#xff08;MSMQ&#xff09;技术使得运行于不同时间的应用程序能够在各种各样的网络和可能暂时脱机的系统之…

单调谐回路谐振放大器等效电路分析_手把手教你如何分析三极管电路

三极管有静态和动态两种工作状态。未加信号时三极管的直流工作状态称为静态&#xff0c;此时各极电流称为静态电流。给三极管加入交流信号之后的工作电流称为动态工作电流&#xff0c;这时三极管是交流工作状态&#xff0c;即动态。一个完整的三极管电路分析有4步&#xff1a;直…

android工程jrr版本怎么改,ionic3 生成android 如何控制versionCode版本号

POJ 1321 DFS题意:POJ少见的中文题,福利啊. 思路: 一开始也没有思路呃呃呃 . 裸搜,连样例都过不去...参照了网上的题解:一行一行DFS 茅塞顿开啊. #include #in ...SlickGrid example 4&colon; 过滤ompoment" syntax. But ng-annotate doesnt understand ".co ...…

惊呆了!竟然还有这样的操作!

2018已成为过去&#xff0c;2019的序幕已经悄然打开&#xff01;2019开年钜惠盛大来袭&#xff01;&#xff08;福利在最后&#xff01;&#xff01;&#xff01;&#xff09;Python专场Python快速入门实战&#xff08;59.9&#xff09;人工智能的浪潮下&#xff0c;Python因其…

弹出消息对话框类

using System.Text; namespace DotNet.Utilities { //页面中弹出对话框 public class MessageBox { private MessageBox() { } #region 显示消息提示对话框 /// <summary> /// 显示消息提示对话框 /// <…

使用 .NET 升级助手将.NET Framework应用迁移到.NET 5

从.NET Framework 迁移到.NET 5 犹如搬家&#xff0c;我们都知道搬家是很痛苦的&#xff0c;我们请求搬家公司来减轻我们的压力&#xff0c;.NET 升级助手 的作用就类似我们聘请的搬家公司&#xff0c;帮助我们处理繁重乏味的迁移工作。.NET 升级助手是一个全局命令行工具&…