数据结构课程设计——链表合并

学校来题
因为这学期学了数据结构这门课,于是乎,学院便给了一个让我们课程设计的题目。
实现两个链表的合并
基本功能要求:
(1)建立两个链表A和B,链表元素个数分别为m和n个。
(2)假设元素分别为(x1,x2,…xm),和(y1,y2, …yn)。把它们合并成一个线性表C,使得:
当m>=n时,C=x1,y1,x2,y2,…xn,yn,…,xm
当n>m时,C=y1,x1,y2,x2,…ym,xm,…,yn
输出线性表C:
(1) 用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。
测试数据:
(1) A表(30,41,15,12,56,80)
B表(23,56,78,23,12,33,79,90,55)
(2) A表(30,41,15,12,56,80,23,12,34)
B表(23,56,78,23,12)

解题思路
首先,构建两个链表A、B
其次,合并两个链表,生成链表C
最后,将链表C进行直接插入排序,生成链表D

可以知道,链表的排序是很复杂的,所以我们这里采用的方法是:将链表数据分离出来,存至数组!!通过数组来操作链表的各个元素!!

1、构造链表结构体
这里写图片描述
2、链表初始化、尾插、打印以及销毁
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
3、构造链表
这里写图片描述
4、合并链表
这里写图片描述

合并链表的代码中,调用了数组合并的函数
这里写图片描述
5、直接插入排序
这里写图片描述
其中调用了数组的直接插入排序函数
这里写图片描述

测试函数
这里写图片描述
测试结果
这里写图片描述
这里写图片描述

最后
1、关于其他的数据结构知识,大家可以访问我的主页:https://blog.csdn.net/Code_ZX?ref=toolbar
2、这篇CSDN做的比较烂,因为已经做了一份课程设计了,所以就有点懒!!
3、关于链表的基础知识,大家可以访问这个链接:https://blog.csdn.net/code_zx/article/details/80024207
4、谢谢你们的阅读
这里写图片描述

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值