将两个递增的有序链表合并为一个递增的有序链表.【数据结构】【线性表】

2023-05-16


编写一个函数完成如下功能:将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来的链表空间,不另外占用其他的存储空间。表中不允许有重复的数据。

要求,在主函数中调用上面的函数测试。

提示:还需要定义其他函数,比如初始化链表,构造单链表,输出单链表。


#include<iostream>
using namespace std;
//定义单链表
typedef struct  LNode
{
	int data;
	struct LNode *next;
}LNode,*LinkList;
//初始化单链表
int InitList(LinkList &L)
{
	L = new LNode;
	L->next = NULL;
	return 0;
}
//构造单链表
int ConsList(LinkList &L)
{
	cout << "输入赋值的个数:" ;
	int n;
	cin >> n;
	LinkList r = L;
	cout << "输入链表:";
	for (int i = 0; i < n; i++) {
		LinkList p = new LNode;
		cin >> p->data;
		p->next = NULL;
		r->next = p;
		r = p;
	}
	return 0;
}

//合并
void MergeList_L(LinkList &LA,LinkList &LB,LinkList &LC){
	LinkList pa = LA->next;     
	LinkList pb = LB->next;
	LC = LA;
	LinkList pc = LC;
	while (pa && pb)
	{
		if (pa->data < pb->data)
		{
			pc->next = pa;
			pc = pa;
			pa = pa->next;
		}
		else if(pb->data<pa->data)
		{
			pc->next = pb;
			pc = pb;
			pb = pb->next;
		}
		else
		{
			pc->next = pa;
			pc = pa;
			pa = pa->next;
			LinkList p = pb;
			pb = pb->next;
			delete p;
		}
	}
	if (pa) 
	{
		pc->next = pa;
	}
	else
	{
		pc->next = pb;
	}
	delete LB;
}
//输出链表
void print(LinkList L){
	LinkList p = L->next;
	while(p)
	{
		cout << p->data<<" ";
		p = p->next;
	}
}

int main() 
{
	cout << "请输入第一个递增的链表:"<<endl;
	LinkList LA, LB, LC;
	InitList(LA);
	ConsList(LA);
	cout << "请输入第二个递增的链表:"<<endl;
	InitList(LB);
	ConsList(LB);
	MergeList_L(LA,LB,LC);
	cout << "合并为一个递增的链表后为:";
	print(LC);
	return 0;
}

输出结果: 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将两个递增的有序链表合并为一个递增的有序链表.【数据结构】【线性表】 的相关文章

随机推荐

  • MySQL 数据库 分组查询

    分组查询 xff1a 包括单列分组查询和多列分组查询 group by 单列分组查询 示例 xff1a 1 根据科目分组 xff0c 查询每个科目的平均分 2 根据班级分组 xff0c 查询每个班级成绩总数 3 根据班级分组 xff0c 查
  • JAVA http请求工具类

    原文 xff1a JAVA http请求工具类 月半花开的博客 CSDN博客 目录 1 第一种http requst 1 xff09 maven引入 2 xff09 Get请求请求示例 3 xff09 post请求请求示例 2 第二种hut
  • Weather API 天气应用 API调用分享

    Weather API 分享 链接 xff1a https openweathermap org api 注册默认是One Call API 3 0 适合学生项目练手 提供以下天气数据 xff1a 当前天气每小时 分钟预报48小时每小时预报
  • pip安装python包到指定路径

    1 2 我们可以先进入创建好的虚拟环境的site packages 我还没有尝试 xff1a
  • Kubernetes1.26.0部署(Ubuntu/CentOS)

    文章目录 前言准备工作准备5台虚拟机初始化操作Centos配置yum源配置免密 修改hostname 关闭防火墙 selinux 关闭swap分区 方便后面进行其它操作 下载软件包并批量安装配置时间同步配置打开文件描述符添加ipvs模块和内
  • 真正免费的天气API,无需注册申请key

    文章目录 1 中华万年历的天气API 2 讯飞语音识别内置的墨迹天气API 3 乐享天气APP 4 蚂蚁数据天气查询API接口 无聊整理的真正免费的天气API xff0c 无需注册申请key等 xff0c 当然部分数据解析需要自己理解下 x
  • rollup 打包报错

    RollupError Node tried to load your configuration file as CommonJS even though it is likely an ES module To resolve this
  • 视频4K技术的解读

    前几年4K技术就已经有人提及 xff0c 今年更是成了一个非常热门的词汇 xff0c 而且4K技术已经普遍应用于各类终端 xff0c 如电视机 机顶盒 手机等 那么如何来理解4K这个东东呢 xff1f 今天博主就谈谈自己对4K技术的认识 博
  • 字符串—练习题

    目录 案例 xff1a 拼接字符串 案例 xff1a 拼接字符串 案例 xff1a 统计字符串 案例 xff1a 字符串反转 案例 xff1a 字符串反转 案例 xff1a 拼接字符串 需求 xff1a 定义一个方法 xff0c 把int数
  • Anaconda配置环境变量 Windows11

    1 找到Anaconda的安装路径以备配置环境变量使用 2 复制一下路径 C ProgramData Anaconda3 C ProgramData Anaconda3 Scripts C ProgramData Anaconda3 Lib
  • 用rs_lidar雷达跑lio_sam

    1 准备工作 imu绑定串口有线连接雷达并能用rviz显示雷达点云用两个imu标定包标定imu在完成第二步必要的工作后 xff0c 配置LIO SAM config 下的params yaml参数 xff0c 更改之前建议备份在旁边复制粘贴
  • 如何从gitee上下载项目并运行

    前端界面 找到所要下载的项目 xff0c 点击克隆 下载 xff0c 并下载zip压缩包后解压 xff08 方法很多看个人习惯 xff0c 我觉得这样比较快 xff09 打开WebStrom xff0c 并找到刚刚下载的项目 xff0c 点
  • Springboot整合Mybatis-Plus

    1 概述 MyBatis Plus opens new window xff08 简称 MP xff09 是一个 MyBatis opens new window 的增强工具 xff0c 在 MyBatis 的基础上只做增强不做改变 xff
  • 初识C语言——第一个C语言程序(保姆级教程)

    1 创建一个项目 1 1 首先 xff0c 下载好适合的编译器 xff0c 此处用的是VS2017 此处点击空项目 此处有几个细节需要我们注意一下 xff1a 1 此处选择C 43 43 xff0c 空项目 xff0c C 43 43 对C
  • Ubuntu双系统扩大/home磁盘空间大小,gparted移动磁盘位置及大小

    前言 xff1a 笔者之前试过挂载磁盘的方法 xff0c 后开觉得不方便 xff0c 于是决定用U盘启动盘来扩大空间 xff0c 花了几个小时终于搞清楚了整个流程 xff0c 其中在gparted移动磁盘位置的地方卡了很长时间 xff0c
  • gitee码云仓库创建教程

    git码云 目录 1 注册账户 2 申请生成公钥 3 生成公钥 3 创建git仓库 4 remote Access denied 拒绝访问 fatal unable to access https gitee cohe requested
  • 如何使用Python的第三方库you-get下载视频

    安装步骤 1 Win 43 R打开cmd 2 输入指令下载第三方库you get xff0c 该第三方库可以用于下载视频 pip install you get 3 等到它显示 Successfully installed you get
  • 递归函数-求N阶乘

    递归函数 xff0c 就是指自己调用自己的函数 运用大事化小的思维 xff0c 将繁杂的流程简单化 想对比于循环思维 xff0c 递归函数显然让代码的利用率更高了 xff0c 因为0的阶乘是0 xff0c 所以这应该单独进行判断 xff0c
  • CDN如何添加加速域名和绑定CNAME

    摘要 xff1a 本文将手把手教你开通CDN服务 添加加速域名和绑定CNAME 步骤 1 xff1a 开通CDN服务 在阿里云官网CDN产品详情页快速了解产品 xff0c 之后单击 立即开通 在订购页面选择适合计费方式 xff0c 确认订单
  • 将两个递增的有序链表合并为一个递增的有序链表.【数据结构】【线性表】

    编写一个函数完成如下功能 xff1a 将两个递增的有序链表合并为一个递增的有序链表 要求结果链表仍使用原来的链表空间 xff0c 不另外占用其他的存储空间 表中不允许有重复的数据 要求 xff0c 在主函数中调用上面的函数测试 提示 xff