《数据结构》实验报告
班级:学号:姓名:
E-mail:日期:
◎实验题目:合并两个链表
◎实验目的:设计合适的数据结构,熟悉链表的构造、合并和输出。
◎实验内容:通过算法实现,构造合适的数据结构,通过输入获得A和B两个有序循环链表,将这两个链表按元素的大小顺序排列合并成一个有序循环链表并输出,例如输入A链表为:1 3 5 7 9,B链表为2 4 6 8 10,的合成的C链表为
1 2 3 4 5 6 7 8 9 10。
一、需求分析
1.本程序演示中,链表A和链表B的长度m ,n是任意的,开始时输入链表长度,计算机根据此链表创建循环链表,并由人输入链表数据,之后计算机将两链表合并成一个链表C。
2. 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信
息”之后,由用户在键盘上输入相应数据(链表长度和链表中数据)。3.程序执行的命令包括:
(1)构造链表;(2)输入数据;(3)进行链表的合并操作;(4)输出链;
(5)结束。
4、测试数据:
第一组:A链表长度:5,A链表数据:1 3 5 7 9
B链表长度:5,B链表数据:2 4 6 8 10
合并的C链表为:1 2 3 4 5 6 7 8 9 10;
第二组:A链表长度:4,A链表数据:2 5 6 8
A链表长度:5,A链表数据:1 4 7 9 14
合并的C链表为:1 2 4 5 6 7 8 9 14
第三组:A链表长度:5,A链表为:1 2 4 6 8
B链表长度:5,B链表为:1 3 4 5 9
合并的C链表为:1 2 3 4 5 6 8 9
二概要设计
为实现上述算法,选择循环单链表为本程序的存储结构。
1、基本操作:
creat()
操作结果:构造循环单链表,并通过输入将数据输入链表
combine()
初始条件:循环单链表已经存在
操作结果:将两个链表有序合并为一个链表
2、本程序包括三个模块:
(1)主程序模块
(2)构造链表模块
(3)链表合并模块
3、模块调用关系图