《数据结构》实验学院:计算机学院专业:计算机科学与技术班级学号:计1203201207010323姓名:方荣实验一:实现两个链表的合并题目:实现两个链表的合并基本要求:(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=(3)为统一起见,测试数据可以是{710,342,045,686,6,841,429,134,68,264},也可以调用系统的随机函数产生
测试数据:{710,342,45,686,6,841,429,134,68,264}算法思想:这个两个链表的交叉合并算法主要运用到的是链表的基本操作,定义结点,链表的创建、计算链表的长度、链表A,B的交叉合并、输出链表等算法写成独立函数,通过主函数的调用,实现题目的要求
模块划分:1
单链表的存储结构
用尾插法建立链表
计算链表的长度
数据结构:源程序:#include#include#include#include#defineLsizeof(structNode)structNode{//构造结构体longintdata;structNode*next;};structNode*create(inta){intn;structNode*p1,*p2,*head;head=NULL;n=0;p2=p1=(structNode*)malloc(L);scanf("%ld",&p1->data);while(a){n=n+1;if(n==1)head=p1;elsep2->next=p1;p2=p1;p1=(structNode*)malloc(L);if(a
=1)scanf("%ld",&p1->dat