计算0901第11组集合的并交和差运算的程序.doc

计算0901第11组集合的并交和差运算的程序.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算0901第11组集合的并交和差运算的程序

数据结构课程设计 题目: 集合的并、交和差运算的程序 组号: 第11组 成员: 任务:编制一个演示集合的并、交和差运算的程序。 要求:集合的元素限定为整型数据;用三个子程序分别完成并、交和差运算,并输出结果。 需求分析 首先对题目分析,编制集合的并、交和差运算的程序需理解集合的并、交和差运算:设A、B分别为实数域的两个集合,A={1,2,3,4,5},B={1,3,5,7} 集合的并运算 集合的并运算是找出两个集合所能包含的最大元素个数的集合。即={1,2,3,4,5,7} 集合的交运算 集合的并运算是找出两个集合所能包含的最大元素个数的集合。即={1, 3, 5} 集合的差运算 集合的并运算是找出两个集合所能包含的最大元素个数的集合。即={2,4} 其次,依据数据结构的知识以线性表的顺序表(存储数据类型和长度)为存储结构,数 据元素类型为整型,创建两个顺序表La和Lb作为集合运算的主体,构建一个辅助顺序表Lc用来保存集合运算后的结果, 最后,依据集合的并、交和差运算设计合理的函数体,分别实现顺序表的创建、初始化、输出元素、并运算、交运算和差运算。使用上述实例运行调试程序,并通过调用输出函数输出运算结果,查看是否准确无误的实现想要的运算结果。 概要设计 定义数据结构为顺序表,含有两个数据域:整型元素、顺序表长度、空间大小。 主函数中引用创建、初始化、并、交、差及输出顺序表的子函数。 创建顺序表中,创建一个长度为100的顺序表,由于分配的空间相对较大,没有使用追 加空间的容错程序。使用交互操作实现对不同的顺序表选择是否立即创建元素。 初始化顺序表元素中,使用循环语句依次从终端获取人工输入的元素值。 输出顺序表元素中,使用循环语句依次输出元素,并适当控制元素间的间距便于辨认。 集合并操作中,先将一个顺序表La的内容复制到用于暂存结果的顺序表Lc中,再依次对另一顺序表Lb的元素经行筛选:若元素存在于La中(标记blog=1)则跳过该元素,继续查看下一个元素,否则将该元素附加到暂存数组Lc的尾部。另外添加基本容错能力查看是否能够正确执行完该操作。 集合交操作中,先将一个顺序表La的内容依次取出与Lb顺序表的元素一一对比,若该元素存在于Lb中,则将该元素赋值到Lc顺序表的表尾(length位置),否则跳过该元素,继续查看下一个元素。另外添加基本容错能力查看是否能够正确执行完该操作。 集合差操作中,设计程序差运算为Lc=La-Lb;先将一个顺序表La的内容依次取出与Lb顺序表的元素一一对比,若该元素不存在于Lb中(标记blog=0),则将该元素赋值到Lc顺序表的表尾(length位置),继续查看下一个元素,否则跳过该元素,另外添加基本容错能力查看是否能够正确执行完该操作。 详细设计 #include stdio.h #include malloc.h #define OVERFLOW -2 #define OK 1 #define ERROR 0 typedef int elemtype; typedef int Status; #define listintsize 100 //定义数据结构 typedef struct { elemtype *elem; int length; int listsize; }Sqlist; //创建数组的元素 Status listinsert(Sqlist *L,int i) { elemtype a; printf(输入元素值:\n); scanf(%d,a); *(L-elem+i)=a; L-length++; return OK; } //初始化数组 Status initsqlist(Sqlist *L) { int i,j,k; L-elem=(elemtype *)malloc(listintsize * sizeof(elemtype)); if(!L-elem) return OVERFLOW; L-length=0; L-listsize=listintsize; printf(是否现在输入元素?\n现在输入请按;\n稍后输入请按;\n); scanf(%d,i); if(i==2) return OK; else { if(i==1) { printf(输入目标数组的元素个数j:\nj=); scanf(%d,j); for(k=0;kj;k++) listinsert(L

文档评论(0)

haocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档