您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 数据结构课程设计报告(集合的交并差运算)
淮阴工学院数据结构课程设计报告作者:学号:班级:学院:专业:题目:指导教师:2016年1月淮阴工学院《数据结构课程设计》报告第Ⅰ页共Ⅰ页目录1课题描述..............................................................................................................................................12系统设计..............................................................................................................................................12.1功能模块设计.............................................................................................................................12.1.1基于单链表设计.............................................................................................................12.1.2基于顺序表设计.............................................................................................................22.2数据结构设计.............................................................................................................................22.2.1基于单链表设计.............................................................................................................22.1.2基于顺序表设计.............................................................................................................32.3算法设计.....................................................................................................................................32.3.1基于单链表,顺序表设计.............................................................................................33.1菜单设计(基于单链表).........................................................................................................53.2源代码设计(基于单链表).....................................................................................................53.3菜单设计(基于顺序表).......................................................................................................103.4源代码设计(基于顺序表)...................................................................................................104.1最终结果(基于单链表).......................................................................................................204.2最终结果(基于顺序表).......................................................................................................20结论......................................................................................................................................................21致谢......................................................................................................................................................22参考文献............................................................................................................................................23淮阴工学院《数据结构课程设计》报告第1页共23页1课题描述编制一个能演示执行集合的交、并和差运算的程序。集合元素用小写英文字母,执行各种操作应以对话方式执行。利用单链表表示集合;理解好三种运算的含义2系统设计2.1功能模块设计2.1.1基于单链表设计(1)节点结构单元模块——定义有序表的节点结构;typedefstructLNode//定义结构体类型指针{chardata;structLNode*next;}*pointer;(2)有序表单元模块——实现有序表的抽象数据类型;readdata(pointerhead)初始条件:head是以head为头节点的空链表。操作结果:生成以head为头节点的非空链表。pop(pointerhead)初始条件:head是以head为头节点的非空链表。操作结果:将以head为头节点的链表中数据逐个输出。(3)集合单元模块——实现集合获得抽象数据类型;and(pointerhead1,pointerhead2,pointerhead3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的并集构成的集合head3。or(pointerhead1,pointerhead2,pointerhead3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的交集构成的集合head3。(4)主程序模块Voidmain(){初始化;淮阴工学院《数据结构课程设计》报告第2页共23页do{接受命令;处理命令;}while(“命令”!=“退出”);}2.1.2基于顺序表设计(1)顺序表结构单元模块——定义顺序表的结构体;typedefstruct//定义SeqList的结构体{DataTypelist[MaxSize];intsize;}SeqList;(2)函数单元模块——定义各种所需函数;intListDel(SeqList*L,inti,DataType*x)//顺序表的删除函数intListGet(SeqListL,inti,DataType*x)//获取顺序表的元素函数voidListFind(SeqListL,DataTypex)//顺序表查找元素函数voidSelcetSort(SeqList*L)//顺序表选择排序函数voidUnionSet(SeqListmylist1,SeqListmylist2)//求并集函数voidMixedSet(SeqListmylist1,SeqListmylist2)//求交集元素函数voidDiffentSet(SeqListmylist1,SeqListmylist2)//求差集元素函数(3)主函数单元模块——定义主函数;voidmain(){SeqListmylist1,mylist2;//定义顺序表mylistinti;DataTypetemp;ListInitiate(&mylist1);ListInitiate(&mylist2);}//初始化两个顺序表2.2数据结构设计2.2.1基于单链表设计定义结构体类型指针,集合采用单链表存储。typedefstructLNode//定义结构体类型指针head1=(pointer)malloc(sizeof(structLNode));head1-next=NULL;淮阴工学院《数据结构课程设计》报告第3页共23页head2=(pointer)malloc(sizeof(structLNode));head2-next=NULL;head3=(pointer)malloc(sizeof(structLNode));2.1.2基于顺序表设计typedefstruct//定义SeqList的结构体{DataTypelist[MaxSize];intsize;voidUnionSet(SeqListmylist1,SeqListmylist2)//求并集{intm,i,j;DataTypex;SeqListTest;ListInitiate(&Test);//定义并初始化2.3算法设计2.3.1基于单链表,顺序表设计图2.1系统模块流程图调用输入函数,输入集合信息显示主菜单主菜单界面集合的并集运算集合的交集运算集合的差集运算结束数据输入界面淮阴工学院《数据结构课程设计》报告第4页共23页否是否是图2.2主菜单流程图否是否是图2.3并集模块流程图求交集与差集的流程图与并集类似。接受用户选择是否合法是否为4调用对应选项函数退出系统主菜单用户选择序号是否合法是否为1调用并集函数和输出函数淮阴工学院《数据结构课程设计》报告第5页共23页3详细设计3.1菜单设计(基于单链表)图3.1主界面3.2源代码设计(基于单链表)#includestdio.h#includestdlib.htypedefstructLNode//定义结构体类型指针{chardata;structLNode*next;}*pointer;voidreaddata(pointerhead)//定义输入集合函数{pointerp;chartmp;scanf(%c,&tmp);while(tmp!='\n'){p=(pointer)malloc(sizeof(structLNode));//为指针P申请内存空间p-data=tmp;p-next=head-next;head-next=p;scanf(%c,&tmp);}}voidpop(pointerhead)//定义输出集合函数pop()出栈函数淮阴工学院《数据结构课程设计》报告第6页共23页{pointerp;p=head-next;while(p!=NULL){printf(%c,p-data);p=p-next;}printf(\n);}voidand(pointerhead1,pointerh
本文标题:数据结构课程设计报告(集合的交并差运算)
链接地址:https://www.777doc.com/doc-4924966 .html