题目:设ha和hb分别是指向两个带头结点的非递减(递增)有序单链表的头指针。要求设计一个算法,将这两个有序链表合并成一个非递增(递减)有序的单链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其它存储空间。表中允许有重复的数据。
1.需求分析
输入:
递增链表A
递增链表B
输出:合并后的递增链表C,没有重复元素
2.概要设计
总体流程图
3.详细设计
实现概要设计中定义的所有数据类型和每个操作的算法编程,即带注释的源程序。画出函数的调用关系图。
4.调试分析
如果用户输入的数组并不是有序的,那么使用一个排序函数就可以了,后面会实现。
如果用户输入的数组确实不是有序的,那么结果也是超出预料的。
5.使用说明
运行程序,按照提示即可。
6.测试结果
测试组一:
建立单连表,元素类型为int,以0结束输入
输入第1个节点值:2
输入第2个节点值:5
输入第3个节点值:0
建立单连表,元素类型为int,以0结束输入
输入第1个节点值:1
输入第2个节点值:2
输入第3个节点值:5
输入第4个节点值:6
输入第5个节点值:8
输入第6个节点值:9
输入第7个节点值:0
从左往右,单链表的元素为: 1 2 5 6 8 9
测试组二:
建立单连表,元素类型为int,以0结束输入
输入第1个节点值:23
输入第2个节点值:34
输入第3个节点值:45
输入第4个节点值:56
输入第5个节点值:67
输入第6个节点值:0
建立单连表,元素类型为int,以0结束输入
输入第1个节点值:12
输入第2个节点值:23
输入第3个节点值:56
输入第4个节点值:67
输入第5个节点值:78
输入第6个节点值:89
输入第7个节点值:0
从左往右,单链表的元素为: 12 23 34 45 56 67 78 89
测试组三:
建立单连表,元素类型为char,以#结束输入
输入第1个节点值:a
输入第2个节点值:b
输入第3个节点值:c
输入第4个节点值:d
输入第5个节点值:g
输入第6个节点值:hp
输入第7个节点值:输入第8个节点值:0
输入第9个节点值:#
建立单连表,元素类型为char,以#结束输入
输入第1个节点值:d
输入第2个节点值:e
输入第3个节点值:f
输入第4个节点值:g
输入第5个节点值:h
输入第6个节点值:i
输入第7个节点值:o
输入第8个节点值:#
从左往右,单链表的元素为: a b c d e f g h i o p 0
测试组四:
建立单连表,元素类型为char,以#结束输入
输入第1个节点值:,
输入第2个节点值:.
输入第3个节点值:;
输入第4个节点值:'
输入第5个节点值:[
输入第6个节点值:]
输入第7个节点值:#
建立单连表,元素类型为char,以#结束输入
输入第1个节点值:;
输入第2个节点值:[
输入第3个节点值:%
输入第4个节点值:!
输入第5个节点值:;
输入第6个节点值:)
输入第7个节点值:#
从左往右,单链表的元素为: , . ; ' [ % ! ; ) ]
7.附录
源程序文件清单。