数据结构课程设计报告--集合的并、交和差运算

数据结构课程设计报告--集合的并、交和差运算

ID:25787787

大小:79.50 KB

页数:8页

时间:2018-11-22

数据结构课程设计报告--集合的并、交和差运算_第1页
数据结构课程设计报告--集合的并、交和差运算_第2页
数据结构课程设计报告--集合的并、交和差运算_第3页
数据结构课程设计报告--集合的并、交和差运算_第4页
数据结构课程设计报告--集合的并、交和差运算_第5页
资源描述:

《数据结构课程设计报告--集合的并、交和差运算》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、合肥学院计算机科学与技术系课程设计报告2012~2013学年第二学期课程数据结构与算法课程设计名称集合的并、交和差运算学生姓名张文浩学号1104032028专业班级11网工2班指导教师何立新华珊珊2013年6月题目:集合的并、交和差运算【问题描述】编制一个能演示执行集合的并、交和差运算的程序。【基本要求】(1)集合的元素限定为小写字母字符[‘a’..’z’]。(2)演示程序以用户和计算机的对话方式执行。【测试数据】(1)Set1="magazine",Set2="paper",Set1∪Set2="aegimnprz",Setl∩Se

2、t2="ae",Set1-Set2="gimnz"。(2)Set1="012oper4a6tion89",Set2="errordata",Set1∪Set2="adeinoprt",Setl∩Set2="aeort",Set1-Set2="inp"。【实现提示】以有序链表表示集合。【选作内容】(1)集合的元素判定和子集判定运算。(2)求集合的补集。(3)集合的混合运算表达式求值。(4)集合的元素类型推广到其他类型,甚至任意类型。一、实验内容实验题目:编制一个演示集合的并、交和差运算的程序。需求分析:1、 本演示程序中,集合的元素限定

3、为小写字母字符[“a”…”z”]。集合输入的形式为一个以“回车符“为结束标志的字符串,串中字符顺序不限。2、 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息“之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据和运算结果显示在其后。3、 程序执行的命令包括:1) 构造集合1;2)构造在集合2;3)求并集;4)求交集;5)求差集;6)返回;7)结束。“构造集合1”和“构造集合2”时,需以字符的形式键入集合元素。二、数据结构设计为了实现上述程序的功能,应以有序链表表示集合。为此,需要两个抽象数据类型:有序

4、表和集合。1、有序表的抽象数据类型定义为:readdata(pointerhead)初始条件:head是以head为头节点的空链表。操作结果:生成以head为头节点的非空链表。pop(pointerhead)初始条件:head是以head为头节点的非空链表。操作结果:将以head为头节点的链表中数据逐个输出。2、集合的抽象数据类型定义为:and(pointerhead1,pointerhead2,pointerhead3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的并集构成的集合h

5、ead3。or(pointerhead1,pointerhead2,pointerhead3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的交集构成的集合head3。differ(pointerhead1,pointerhead2,pointerhead3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的差集构成的集合head3。3、本程序抱含四个模块:1) 节点结构单元模块——定义有序表的节点结构;2) 有序表单元模块——实现有序表

6、的抽象数据类型;3) 集合单元模块——实现集合获得抽象数据类型;4)主程序模块:Voidmain(){初始化;do{接受命令;处理命令;}while(“命令”!=“退出”);}三、算法设计#include#includetypedefstructLNode//定义结构体类型指针{chardata;structLNode*next;}*pointer;voidreaddata(pointerhead)//定义输入集合函数{pointerp;chartmp;scanf("%c",&tmp);while

7、(tmp!=''){p=(pointer)malloc(sizeof(structLNode));p->data=tmp;p->next=head->next;head->next=p;scanf("%c",&tmp);}}voidpop(pointerhead)//定义输出集合函数{pointerp;p=head->next;while(p!=NULL){printf("%c",p->data);p=p->next;}printf("");}voidand(pointerhead1,pointerhead2,pointerh

8、ead3)//定义集合的并集函数{pointerp1,p2,p3;p1=head1->next;while(p1!=NULL){p3=(pointer)malloc(sizeof(structLNode));p3->da

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

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

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