1 / 13
文档名称:

数据结构试验报告-集合的交并差.doc

格式:doc   大小:91KB   页数:13
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构试验报告-集合的交并差.doc

上传人:2286107238 2020/1/13 文件大小:91 KB

下载得到文件列表

数据结构试验报告-集合的交并差.doc

文档介绍

文档介绍:实验报告:集合的交并差运算题目:编写一个演示集合的交并差运算的计算机程序一、需求分析本次实验中要求输入的集合的元素类型为小写字母a到z,集合输入结束的标志是一“回车符”为标志的,集合的输入不限字符输入的顺序且允许重复输入和输入非法字符;本次实验中输出的集合中不包含重复的元素,集合中的元素按ASCII从小到大排列输出且将自动过滤输入的非法字符;本次实验的程序可以计算用户输入的两个集合的交集、并集和补集;本次实验的测试数据有:输入的集合为Set1=”magazine”,Set2=”paper”,输出的集合为Set1=”aegimnz”,Set2=”aepr”,并集为”aegimnprz”,交集为”ae”,差集为”gimnz”;输入的集合为Set1=”WE056gyh”,Set2=”asyE”,输出的集合为Set1=”ghy”,Set2=”asy”,并集为”aghsy”,并集为”y”,差集为”aghs”。二、概要分析为实现上述程序的功能,用有序链表表示集合。因此,需要有两个抽象数据类型:有序表和集合。有序表的抽象数据类型定义:ADTOrderedList{数据对象:D={ai|ai∈CharSet,i=1,2...,n,n>=0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,ai-1<ai,i=2...n}基本操作:InitList(&L)操作结果;构造一个空的有序表L。DestroyList(&L)初始条件:有序表L已存在。操作结果:销毁有序表L。ListLength(L)初始条件:有序表L已存在。操作结果:返回有序表L的长度。ListEmpty(L)初始条件:有序表L已存在。操作结果:若有序表L为空表,返回True,否则返回False。GetElem(L,i,&e)初始条件:有序表L已存在,若1<=i<=Length(L)。操作结果:用e返回L中第i个元素的值。LocateElem(L,pare())初始条件:pare()是数据元素判定函数操作结果:pare()的数据元素的位序。若这样的元素不存在,则返回值为0。Append(&L,e)初始条件:有序表L已存在。操作结果:在有序表L的末尾插入元素e。InsertAfter(&L,q,e)初始条件:有序表L已存在,q指示L中的一个元素。操作结果:在有序表L中q指示的元素之后插入元素e。ListTraverse(q,visit())初始条件:有序表L已存在,q指示L中的一个元素。操作结果:依次对L中q指示的元素开始的每个元素调用函数visit()。}:ADTSet{数据对象:D={ai|ai为小写英文字母且互不相同,i=1,2,....,n,0<=n<=26}数据关系:R1={}基本操作:CreateSet(&T,Str)初始条件:Str为字符串。操作结果:生成一个由Str中小写字母构成的集合T。DestroySet(&T)初始条件:集合T已存在。操作结果:销毁集合T的结构。Union(&T,S1,S2)初始条件:集合S1和S2存在。操作结果:生成一个由S1和S2的并集构成的集合T。Intersection(&T,S1,S2)初始条件:集合S1和S2存在。操作结果:生成一个由S1和S2的并集构成的集合T。Difference(&T,S1,S2)初始条件:集合S1和S2存在。操作结果:生成一个由S1和S2的差集构成的集合T。PrintSet(T)初始条件:集合T已存在。操作结果:按字母次序顺序显示集合T的全部元素。}(1)主程序模块:voidmain(){初始化;do{接受命令;处理命令;}while(“命令”=“退出”);}(2)集合单元模块—实现集合的抽象数据类型;(3)有序表单元模块—实现有序表的抽象数据类型;(4)结点结构单元模块—定义有序表的结点结构。各模块调用关系:主程序模块→集合单元模块→有序表单元模块→结点结构单元模块三、详细设计函数的调用关系图为:具体函数代码为:#RUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2//函数常量的声明//typedefintStatus;typedefcharElemType;//元素类型的定义//#include<>#include<>#include<>#include<>//函数的头文件//ElemTypea[100]="magazine";ElemTypeb[100]="paper";OrderedListL1,L2,L3;//定义三个线性链表////定义全局变量//voi