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

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

ID:56205092

大小:111.50 KB

页数:14页

时间:2020-03-20

数据结构实验-集合的并交差运算实验报告.doc_第1页
数据结构实验-集合的并交差运算实验报告.doc_第2页
数据结构实验-集合的并交差运算实验报告.doc_第3页
数据结构实验-集合的并交差运算实验报告.doc_第4页
数据结构实验-集合的并交差运算实验报告.doc_第5页
资源描述:

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

1、实验报告实验课程:数据结构实验项目:实验一集合的并交差运算专业:计算机科学与技术班级:姓名:学号:指导教师:目录一、问题定义及需求分析(1)实验目的(2)实验任务(3)需求分析二、概要设计:(1)抽象数据类型定义(2)主程序流程(3)模块关系三、详细设计(1)数据类型及存储结构(2)模块设计四、调试分析(1)调试分析(2)算法时空分析(3)经验体会五、使用说明(1)程序使用说明六、测试结果(1)运行测试结果截图七、附录(1)源代码一、问题定义及需求分析(1)实验目的设计一个能演示集合的并、交、差运算程序。(2)实验

2、任务1)采用顺序表或链表等数据结构。2)集合的元素限定为数字和小写英文字母。(3)需求分析:输入形式为:外部输入字符串;输入值限定范围为:数字和小写英文字母;输出形式为:字符集;程序功能:计算两个集合的交、并、差以及重新输入集合功能;二、概要设计:(1)抽象数据类型定义:线性表(2)主程序流程:调用主菜单函数初始化两个线性表作为集合给两个集合输入数据输出集合数据元素信息另初始化两个线性表创建选择功能菜单界面通过不同选项调用不同功能函数在每个功能函数里面加结束选择功能,实现循环调用功能菜单计算完毕退出程序;(3)模块

3、关系:主菜单差运算并运算交运算新建集合结束/返回结束三、详细设计抽象数据类型定义:typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;存储结构:顺序表;模块1-在顺序表的逻辑为i的位置插入新元素e的函数;算法如下:/**在顺序表的逻辑为i的位置插入新元素e的函数**/StatusListInsert_Sq(SqList&L,inti,ElemTypee){ElemType*newbase,*p,*q;if(i<1

4、

5、i>L.length+1)retur

6、n0;//i的合法值为(1<=i<=L.length_Sq(L)+1)if(L.length>=L.listsize){//当前储存空间已满,增加分配newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(-1);//储存分配失败L.elem=newbase;//新基址L.listsize+=LISTINCREMENT;//增加储存容量}q=&(L.elem[i-1]);//q为插

7、入位置for(p=&(L.elem[L.length-1]);p>=q;--p)(p+1)=p;//插入位置及之后的元素往右移q=e;//插入e++L.length;//表长加1return1;}模块二在顺序线性表L中查找第1个与e满足compare()的元素位序,若找到,则返回其在L中的位序,否则返回0算法如下:/**在顺序线性表L中查找第1个与e满足compare()的元素位序,若找到,则返回其在L中的位序,否则返回0**/intLocateElem_Sq(SqListL,ElemTypee,Status(*c

8、ompare)(ElemType,ElemType)){ElemType*p;inti;i=1;//i的初值为第1个元素的位序p=L.elem;//p的初值为第1个元素的储存位置while(i<=L.length&&!(*compare)(*p++,e))++i;//从表L中的第一个元素开始与e比较,直到找到L中与e相等的元素时返回该元素的位置if(i<=L.length)returni;//若i的大小小于表长,则满足条件返回ielsereturn0;//否则,i值不满足条件,返回0}模块三集合交运算算法如下:/*

9、*求集合的交集的函数**/voidMix_Sq(SqListLa,SqListLb,SqList&Lc){inti;ElemTypeelem;Lc.length=0;//将表Lc的长度设为0for(i=1;i<=La.length;i++){//依次查看表La的所有元素elem=La.elem[i-1];//将表La中i位置的元素赋值给elemif(LocateElem_Sq(Lb,elem,Equal))//在表Lb中查找是否有与elem相等的元素ListInsert_Sq(Lc,Lc.length+1,elem

10、);//将表La与Lb中共同的元素放在Lc中}}模块四集合并运算算法如下:/**求集合的并集的函数**/voidUnion_Sq(SqListLa,SqListLb,SqList&Lc){inti;ElemTypeelem;Lc.length=0;//将表Lc的长度初设为0for(i=0;i

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

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

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