实现两个链表的合并[精选5篇]
实现两个链表的合并
基本功能要求:
(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)
模块划分
(1)(2)(3)(4)结构体structnode的创建。
structnode*create链表的创建。
voidprint(structnode*head)功能是对链表进行输出。
structnode*inter_link(structnode*chain1,inta,structnode*chain2,intb)
算法的功能是实现两个链表的交叉合并,并且可以根据两链表的长短将行不通的插入。(5)voidinsertsort(structnode*p,intm)算法的功能是对一合并好的链表进行升序插入排序。
main函数主要是对算法进行测试。(6)
数据结构:
数据结构定义如下:
structnode
{
longintnumber;
structnode*next;};源程序:
#include#include#include#include#definelsizeof(structnode)
structnode//结构体{
longintnumber;
(未完,全文共2279字,当前显示749字)
(请认真阅读下面的提示信息)