数据结构 集合运算

数据结构 集合运算

ID:15991821

大小:210.63 KB

页数:16页

时间:2018-08-07

数据结构 集合运算_第1页
数据结构 集合运算_第2页
数据结构 集合运算_第3页
数据结构 集合运算_第4页
数据结构 集合运算_第5页
资源描述:

《数据结构 集合运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、合肥工业大学软件学院设计题目:集合运算学生姓名:专业:软件工程班级:学号:指导老师:完成日期:数据结构课程设计报告数据结构与算法课程设计一、需求和规格说明问题描述:设有两个用单链表表示的集合A、B,其元素类型是int且以非递减方式存储,其头结点分别为a、b。要求下面各问题中的结果集合同样以非递减方式存储,结果集合不影响原集合。实现要求:⑴编写集合元素测试函数IN_SET,如果元素已经在集合中返回0,否则返回1;⑵编写集合元素输入并插入到单链表中的函数INSERT_SET,保证所输入的集合中的元素是唯一且以非递减方式存储在单链表中;⑶编写集合元素输出函数,

2、对建立的集合链表按非递增方式输出;⑷编写求集合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.操作函数voidcreatlist();创建集合voidincreaseArray();递增排序voiddecreaseArr

3、ay();递减排序voidshowArray();输出集合voidAandB(lista,listb);交运算voidAorB(lista,listb);并运算voidAaddB(lista,listb);和运算voidAsubtractB(lista,listb);集合减运算voidsymmetricDifference(lista,listb);对称差运算voidAequalB(lista);复制voidINSERT_SET();递增储存voidDECREASESHOW();递减输出intIN_SET(inti);检测是否在集合中,并返回值一、用户手

4、册1.首先先建立两个做实验的集合A和B2.自动显示你所建的集合3.进入选择界面,选择你想要用的功能(数字表示)4.执行功能,输出结果5.自动退出程序四、调试与测试分别展示六个功能1.2.3.4.5.6.四、复杂度分析做的时候没有考虑复杂度问题,主要就是求交集的时候先排序再求交还是先求交集在排序的问题,如果代码是顺序的,可以让求交集这个操作复杂度变成了o(m+n);比先求交在排序复杂度低很多。而且做课题时并没有把复杂度加入代码的考虑之中四、附录主要为三个文件,目录是控制台(汗。。。。。用switch-case做的)1.list.hstructnode{no

5、de*next;intdata;};classlist{public:list();intlength()const;~list();intget_element(constinti)const;voidinsert(constinti,constintx);voiddelete_element(constinti);voidcreatlist();voidincreaseArray();voiddecreaseArray();voidshowArray();node*gethead(){returnhead;}voidAandB(lista,listb

6、);voidAorB(lista,listb);voidAaddB(lista,listb);voidAsubtractB(lista,listb);voidsymmetricDifference(lista,listb);voidAequalB(lista);voidINSERT_SET();voidDECREASESHOW();intIN_SET(inti);private:intcount;node*head;};1.list.cpp#include"list.h"#includeusingnamespacestd;list::

7、list(){head=newnode;head->next=NULL;count=0;head->data=0;}intlist::length()const{returncount;}intlist::get_element(constinti)const{node*p;p=head->next;intj=1;while(p!=NULL&&j!=i){p=p->next;j++;}if(p==NULL)return-1;elsereturnp->data;}voidlist::insert(constinti,constintx){node*p;p=

8、head->next;intj=0;while(p!=NULL&&j!=i-1)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。