数据结构课程设计-集合的多种运算

数据结构课程设计-集合的多种运算

ID:22287435

大小:180.78 KB

页数:10页

时间:2018-10-28

数据结构课程设计-集合的多种运算_第1页
数据结构课程设计-集合的多种运算_第2页
数据结构课程设计-集合的多种运算_第3页
数据结构课程设计-集合的多种运算_第4页
数据结构课程设计-集合的多种运算_第5页
资源描述:

《数据结构课程设计-集合的多种运算》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、集合的多种运算一目的1.通过这次的课程设汁,I上我们掌握现实S杂问题的分析建模和解决方法;2.提高利用汁算机分析解决综合性实际问题的基本能力;3.加深我们对线性表和排序等理论知识的理解。二需求分析1.本程序中,集合的元素可以是字母也可以是数字。集合输入的形式为一个以“回车符”为结束标志的字符串,串中的字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤去。输出的运算结果字符串中将不含重复字符或非法字符。2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输人数据(滤去输入中的非法字符)和运算结果

2、显示在其后。3.程序执行的命令包括:(1)构造集合1;(2)构造集合2;(3)求并集;(4)求交集;(5)求差集;(6)结束。“构造集合1”和“构造集合2”时,需以字符串的形式键入集合元素。三概要设计1.数据结构设计本实骑以申.链表作为集合的数掘存储错构,定义三个申链表srcl、src2和dcst:(1)求并集:先对表srcl和src2进行排序,然后比较表srcl和src2,将表srcl和src2中的元素挨个插入表dest中;(2)求交集:先对表srcl和src2进行排序,之后比较表srcl、src2,两表中相同的元素逐个插入到表dest中;(3)求差集:先对表srcl和src

3、2进行排序,之后比较表srcl、src2,将表srcl中表src2屮没有的元素逐个插入到表dcst.1.函数的定义和功能(1)创建新集合的函数voidCreateSet(Setdest):以程序定义的一个单链表作为参数,从键盘读入数据作为链表的元素;(2)打印集合元素的函数voidDisplaySeUSetsrc):以单链表为参数,使元素逐个输出到屏幕上;(3)排序函数voidSortSet(Setdest):对一个单链表进行的排序;(4)长度函数intLengthOf(Setsrc):对一个链表的结点数目进行确定;(5)判断函数intExistElem(Setdest,Ele

4、mTypee):判断元素是否存在此链表当中;(6)追加闲数voidAddElem(Setdest,ElemTypee):对一个链表的末尾追加元素;(7)求并函数voidAddSet(Setdest,Setsrcl,Setsrc2):以三个单链表作为参数,将表srcl、src2的元素的并集输出到表dest;(8)求交函数voidMulSet(Setdest,Setsrcl,Setsrc2):以三个单链表作为参数,将表srcl、src2的元素的交集输出到表dest;(9)求差函数voidSubSet(Setdest,Setsrcl,Setsrc2):以三个单链表作为参数,将表src

5、l、src2的元素的差集集输出到表dest;(10)主函数mainO:显示主菜单,分别调用求并、交和差函数來满记相应的功能;2.模块层次关系本程序包含4个模块:(1)主程序模块:voidmainO{初始化:do{接受命令;处理命令;}while(“命令”=“退出”);}(2)集合单元模块一一实现集合的抽象数据类型;(3)有序表单元模块一一实现有序表的抽象数据类型;(4)结点结构单元模块一一定义有序表的结点结构.四详细设计1.链表的创建根据键盘输入的数据创建链表。voidCreateSet(Setdest){//创建一个新的集合ElemTypech;Setp=dest,n;for

6、(;;){ch=getchar();if(ch=’’)break;n=(Set)malloc(sizeof(ElemNode));p->next=n;n-〉elem=ch;n->next=NULL;P=n;}return;}2.集合的排序使用冒泡排序法进行排序,对链表中的元素从前往后两两之间进行比较,取出最大值之后再进行循环,之后依次取出第二大,第三大直到链表排序完成,具体代码如下:voidSortSet(Setdest){//对一个集合进行从小到大的排序inti,j,l,flag;Setp,q,n;l=LengthOf(dest);if(l<2)return;flag=l

7、;for(i=l-1;i>O&&flag==l;i—)flag=O;p=dest;q=p-〉next;n=q-〉next;for(j=0;jelem>n->elem){flag=l;p->next=n;q-〉next二n-〉next;n-〉next二q;q=p->next;n=q-〉next;}p=q;q=n;n=n-〉next;}}}2.集合的并运算先输入A、B集合的内容和一个空集合,以单链表的形式作为函数voidAddSetO的三个实参,再对A、B集合进行排序

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

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

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