数据结构课程设计报告 设计题目:集合运算 学生姓名: 专业:软件工程 班级: 学号: 指导老师: 完成日期: 合肥工业大学软件学院 数据结构与算法课程设计 一、 需求和规格说明 问题描述: 设有两个用单链表表示的集合A、B,其元素类型是int 且以非递减方式存储,其头结点分别为a、b。要求下面各问题中的结果集合同样以非递减方式存储,结果集合不影响原集合。 实现要求: ⑴ 编写集合元素测试函数IN_SET,如果元素已经在集合中返回0,否则返回1; ⑵ 编写集合元素输入并插入到单链表中的函数INSERT_SET,保证所输入的集合中的元素是唯一且以非递减方式存储在单链表中; ⑶ 编写集合元素输出函数,对建立的集合链表按非递增方式输出; ⑷ 编写求集合A、B 的交C=A∩B 的函数,并输出集合C 的元素; ⑸ 编写求集合A、B 的并D=A∪B 的函数,并输出集合D 的元素; ⑹ 求集合A 与 B 的对称差 E=(A-B)∪(B-A) 的函数,并输出集合D 的元素; ⑺ 设计一个菜单,具有输入集合元素、求集合A、B 的交C、求集合A、B的并D、求集合A 与 B 的对称差 E、退出等基本的功能。 测试数据:由读者自定,但集合A、B 的元素个数不得少于 16 个。 二、设计 1. 存 储 结 构 链 表 2. 操 作函数 void creatlist ();创建集合 void increaseArray ();递增排序 void decreaseArray ();递减排序 void showArray ();输出集合 void AandB ( list a , list b);交运算 void AorB ( list a , list b );并运算 void AaddB ( list a , list b);和运算 void AsubtractB( list a , list b );集合减运算 void symmetricDifference ( list a , list b );对称差运算 void AequalB ( list a );复制 void INSERT_SET ( );递增储存 void DECREASESHOW( );递减输出 int IN_SET ( int i );检测是否在集合中,并返回值 二、 用户手册 1. 首先先建立两个做实验的集合 A 和 B 2. 自动显示你所建的集合 3. 进入选择界面,选择你想要用的功能(数字表示) 4. 执行功能,输出结果 5. 自动退出程序 四、 调试与测试 分别展示六个功能 1. 2. 3 . 4 . 5 . 6 . 五、 复杂度分析 做的时候没有考虑复杂度问题,主要就是求交集的时候先排序再求交还是先求交集在排序的问题,如果代码是顺序的,可以让求交集这个操作复杂度变成了o(m +...