欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计集合的多种运算Word文档格式.docx

    • 资源ID:5790214       资源大小:48.05KB        全文页数:12页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计集合的多种运算Word文档格式.docx

    1、三 概要设计1数据结构设计 本实验以单链表作为集合的数据存储结构,定义三个单链表src1、src2和dest:(1)求并集:先对表src1和src2进行排序,然后比较表src1和src2,将表src1和src2中的元素挨个插入表dest中;(2)求交集:先对表src1和src2进行排序,之后比较表src1、src2,两表中相同的元素逐个插入到表dest中;(3)求差集:先对表src1和src2进行排序,之后比较表src1、src2,将表src1中表src2中没有的元素逐个插入到表dest.2函数的定义和功能(1)创建新集合的函数void CreateSet(Set dest):以程序定义的一个

    2、单链表作为参数,从键盘读入数据作为链表的元素;(2)打印集合元素的函数void DisplaySet(Set src):以单链表为参数,使元素逐个输出到屏幕上;(3)排序函数void SortSet(Set dest):对一个单链表进行的排序;(4)长度函数int LengthOf(Set src):对一个链表的结点数目进行确定;(5)判断函数int ExistElem(Set dest, ElemType e):判断元素是否存在此链表当中;(6)追加函数void AddElem(Set dest, ElemType e):对一个链表的末尾追加元素;(7)求并函数void AddSet(Set

    3、 dest, Set src1, Set src2):以三个单链表作为参数,将表src1、src2的元素的并集输出到表dest;(8)求交函数void MulSet(Set dest, Set src1, Set src2): 以三个单链表作为参数,将表src1、src2的元素的交集输出到表dest;(9)求差函数void SubSet(Set dest, Set src1, Set src2):以三个单链表作为参数,将表src1、src2的元素的差集集输出到表dest;(10)主函数main():显示主菜单,分别调用求并、交和差函数来满足相应的功能;3模块层次关系本程序包含4个模块:(1)主

    4、程序模块: void main() 初始化; do 接受命令; 处理命令; while(“命令”=“退出”); (2)集合单元模块实现集合的抽象数据类型;(3)有序表单元模块实现有序表的抽象数据类型;(4)结点结构单元模块定义有序表的结点结构.四 详细设计1. 链表的创建根据键盘输入的数据创建链表。void CreateSet(Set dest) /创建一个新的集合 ElemType ch; Set p=dest,n; for(;) ch=getchar(); if(ch=n) break; n=(Set)malloc(sizeof(ElemNode); p-next=n; n-elem=ch

    5、;next=NULL; p=n; return ;2. 集合的排序使用冒泡排序法进行排序,对链表中的元素从前往后两两之间进行比较,取出最大值之后再进行循环,之后依次取出第二大,第三大.直到链表排序完成,具体代码如下:void SortSet(Set dest) /对一个集合进行从小到大的排序 int i,j,l,flag; Set p,q,n; l=LengthOf(dest); if(l0&flag=1;i-) flag=0; p=dest; q=p-next; n=q- for(j=0;jelemn-elem) q-next=n-next=q; p=q; q=n; n=n-2. 集合的并运

    6、算先输入A、B集合的内容和一个空集合,以单链表的形式作为函数void AddSet()的三个实参,再对A、B集合进行排序,通过比较A、B中的元素求出A、B集合中所有的元素,从前往后将A、B中的所有元素逐个插入到表dest中,具体代码如下:void AddSet(Set dest, Set src1, Set src2) /集合并运算 SortSet(src1);SortSet(src2); int i=0,j=0,len1=LengthOf(src1),len2=LengthOf(src2); src1=src1-src2=src2- while(ielem i+; if(!ExistElem

    7、(dest, src1-elem) AddElem(dest, src1-elem); else j+;ExistElem(dest, src2- AddElem(dest, src2- src2=src2-len1) while(jelem) i+;src1=src1- else if(src1-elem) j+;j+;4. 集合的差运算将A、B集合的内容和一个空集合,以单链表的形式作为函数void SubSet()的三个实参,再对集合A、B进行排序,通过比较A、B中的元素求出A、B集合差集,从前往后将满足条件的元素逐个插入到表dest中,具体代码如下:void SubSet(Set des

    8、t, Set src1, Set src2) /集合差运算 int i=0,len=LengthOf(src1);len)ExistElem(src2, src1-5. 集合的显示将最后得到的链表中的数据进行输出,具体代码如下:void DisplaySet(Set src) /打印集合的所有元素 Set p; if(src-next=NULL) printf(); p=src; do p=p- putchar(p- while(p-next!=NULL);五 调试分析1在对数据进行排序时,由于对循环控制没有做到精确限制,导致输出结果不能按预期递增有序输出,后不断调试和分析后是问题得到正确解决

    9、。2最初进行并运算时,总是没有屏蔽重复的数据,最后分析发现:是判断元素是否存在集合中的函数int ExistElem()错误,导致对数据的重复判断失误。3本次课程设计采用链表形式的数据抽象的程序设计方案,将程序化分为四个主要模块,使得设计时思路清晰,实现时调试顺利,各模块具有较好的可用性,确实得到了一次良好的程序设计训练。4在测试求交集运算时,总显示存取错误,经分析分析调试后发现是在void MulSet()函数定义链表时出现错误,对其中一个链表没有初始化,导致数据存取失败。六 测试结果1.集合并运算测试:2.集合交运算测试:3.集合差运算:七 用户使用说明1在进入使用界面后,根据系统提示从键盘输入两组元素到A、B中,元素可以是数字,可以是字母;2根据界面提示选择要进行的集合运算:1.并集、2.交集、3.差集0.退出;3完成操作之后输入“0”退出。八 课程设计总结通过本次课程设计我学习到了很多内容,尤其是对于C+和数据结构中的专业知识有了更深的理解。此程序中尚有一些不足之处,比如缺少循环使用的功能,每次想要更换集合的元素都得重启程序之后才行。在编写代码时也遇到了各种问题,大部分都是自己考虑不全面和经验不足的结果,但在反复思考分析,并请教同学之后,这些问题都得到了有效的解决。这些将为我以后学习提供宝贵的经验。


    注意事项

    本文(数据结构课程设计集合的多种运算Word文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开