![数据结构(C语言版)实验报告集合的交并差_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/a819f003-1ca9-42e7-ae99-32ef8f5c15a2/a819f003-1ca9-42e7-ae99-32ef8f5c15a21.gif)
![数据结构(C语言版)实验报告集合的交并差_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/a819f003-1ca9-42e7-ae99-32ef8f5c15a2/a819f003-1ca9-42e7-ae99-32ef8f5c15a22.gif)
![数据结构(C语言版)实验报告集合的交并差_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/a819f003-1ca9-42e7-ae99-32ef8f5c15a2/a819f003-1ca9-42e7-ae99-32ef8f5c15a23.gif)
![数据结构(C语言版)实验报告集合的交并差_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/a819f003-1ca9-42e7-ae99-32ef8f5c15a2/a819f003-1ca9-42e7-ae99-32ef8f5c15a24.gif)
![数据结构(C语言版)实验报告集合的交并差_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/a819f003-1ca9-42e7-ae99-32ef8f5c15a2/a819f003-1ca9-42e7-ae99-32ef8f5c15a25.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构与算法实验报告一、需求分析问题描述:编制一个能演示执行集合的并、交和差运算的程序基本要求:集合元素限定为小写字母'a'>1;演示程序以用户和计算机对话方式执行。集合的输入形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序运用时自动过滤去,输出的运算结果中将不含重复字符和非法字符。计算机终端中显示提示信息之后,由用户自行选择下一步命令,相应输入数据和运算结果在其后显示。数据测试:(1)Set1=”magazine”,Set2=paper”,Set1USet2="aegimnprz”,Set1CSet2="
2、;ae”,Set1-Set2="gimnz"(2)Set1=”012oper4a6tion89”,Set2=”errordata”,Set1USet2="adeinoprt",Set1nSet2="aeort:Set1-Set2="inp”.概要设计运用顺序表1 .定义顺序表typedefstructSETchar*elem;intsize;intlength;set;2 基本操作:setInitSet(sets);/初始化集合setInput(sets);/向集合中输入元素setInsertSet(sets,chare);/向集合中
3、插入元素setDelateSet(sets,intn);/从集合中删除元素voiddisplay(sets);/显示集合setSetMix(setset1,setset2,setset3);/求集合的交集setcheck(sets);/检查集合中是否有数字或者重复字母setSort(sets);/对集合中的元素进行排序详细设计1. 头文件#include<stdio.h>#include<stdlib.h>#include<string.h>2. 定义#defineMAX_SIZE20(顺序表的初始大小)#defineADD_SIZE10(顺序表的递增大小)
4、3. 结构类型typedefstructSETchar*elem;intsize;intlength;set;4. 初始化集合setInitSet(sets)s.elem=(char*)malloc(MAX_SIZE*sizeof(char);s.size=MAX_SIZE;s.length=0;returns;5. 向集合中输入元素setInput(sets)char*newbase;gets(s.elem);s.length+=strlen(s.elem);if(s.size<=s.length)newbase=(char*)realloc(s.elem,(s.size+ADD_SI
5、ZE)*sizeof(char);s.elem=newbase;s.size+=ADD_SIZE;returns;6. 向集合中插入元素setInsertSet(sets,chare)s.elems.length=e;s.elems.length+1='0's.length+;returns;7. 从集合中删除元素setDelateSet(sets,intn)inti;for(i=n;i<=s.length;i+)s.elemi-1=s.elemi;7.1 ength-;returns;8. 显示集合voiddisplay(sets)puts(s.elem);9. 检查集
6、合中是否有数字或者重复字母setcheck(sets)inti,j,count;for(i=1;i<=s.length;i+)for(j=1;j<i;j+)if(s.elemi-1=s.elemj-1)s=DelateSet(s,i);i-;break;for(i=1;i<=s.length;i+)if(s.elemi-1>'z'|s.elemi-1<'a')s=DelateSet(s,i);i-;returns;10. 求集合的并集setSetMix(setset1,setset2,setset3)inti;for(i=1;i&l
7、t;=set1.length;i+)set3=InsertSet(set3,set1.elemi-1);for(i=1;i<=set2.length;i+)set3=InsertSet(set3,set2.elemi-1);set3=check(set3);set3=Sort(set3);returnset3;11. 求集合的交集setSetSame(setset1,setset2,setset3)inti,j;for(i=1;i<=set1.length;i+)for(j=1;j<set2.length;j+)if(set1.elemi-1=set2.elemj-1)set
8、3=InsertSet(set3,set1.elemi-1);break;set3=check(set3);set3=Sort(set3);returnset3;12. 求集合的差setSetReduce(setset1,setset2,setset3)inti,j;for(i=1;i<=set1.length;i+)set3=InsertSet(set3,set1.elemi-1);for(i=1;i<=set3.length;i+)for(j=1;j<set2.length;j+)if(set3.elemi-1=set2.elemj-1)set3=DelateSet(se
9、t3,i);set3=check(set3);set3=Sort(set3);returnset3;setSort(sets)inti,j;chartemp;for(i=0;i<s.length-1;i+)for(j=0;j<s.length-i-1;j+)if(s.elemj>s.elemj+1)temp=s.elemj;s.elemj=s.elemj+1;s.elemj+1=temp;returns;13. 主程序main()inti;setset1,set2,set3;set1=InitSet(set1);printf("输入第一个集合:");set
10、1=Input(set1);set2=InitSet(set2);printf("输入第二个集合:");set2=Input(set2);set3=InitSet(set3);printf("选择要进行的操作:1、求交集2、求并集3、求集合的差:");scanf("%d",&i);if(i=1)set3=SetSame(set1,set2,set3);set3=check(set3);set3=Sort(set3);printf("交集为:");display(set3);elseif(i=2)printf
11、("并集为:");set3=SetMix(set1,set2,set3);set3=check(set3);set3=Sort(set3);display(set3);elseif(i=3)printf("集合的差:");-可编辑修改-set3=SetReduce(set1,set2,set3);set3=check(set3);set3=Sort(set3);display(set3);elseprintf("输入错误");return0;四、调试分析1 .本程序的模块划分比较合理,且尽可能的将指针的操作封装在结点和链表的两个模块中
12、,致使集合模块的调试比较成功。2 .将数据存入数组再转入链表,可以忽略输入集合的长度,设计更加巧妙,便于用户使用。3 .本实习作业采用数据抽象的程序设计方法,将程序划分为三个层次:元素结点、有序链表、主控模块,使得设计思路清晰,实现时调试顺利,各模块具有较好的可重复性,确实得到了一次良好的程序设计训练。五、用户守则1 .可执行文件为:a.exe2 .为了界面更加友好特将背景颜色设计为黑色,字体为白色。3 .进入演示程序后即显示文本形式的用户界面,再按提示一步步完成:3'C:>WindowsYsy5tem32Debiiga»exe"Iu1回输入第一个窠合:六、测
13、试结果测试数据(1)1.求交集'1C:Windqwssy5tem32Debuga.exe'-可编辑修改-J.-人人择集一二进nagrazmepapei*:L、求交集continue2、求并集九求集合的差;12.求并集C:WindeivsXsystem32Debuexe"食偏nny舞,FHk彳仃.二更凌第5W为鲁大盒集es并叫magiaz:papep作;1、prztocontme求交集inue2、来并集彳、求集合的差;23.求集合的差'C:Windowssysterri32Debliga.exe'合的差:进仃的Sinnzressanyheytopaper
14、;i、contme求交集inue-2、求并集3求.集含的差:3测试数据(2)1.交集ulZoper4abtlanB?eriioi*ddtd:人求交集2.cantinuetek.行善y一二进.an字第要为s人人择集es合人制看的求并集3,求集合的差;12.并集C:WindQW55y5tem32ADebuga.e)ce"第一个集合押人第二个集尚择要进行的并隼为;adednojjrt812opEr4a6tion8'9errordata;【、求交集2.求并集3、求集合的差,2Pressanykeytocontinue3.差"C:Windowssystem32D&bu
15、ga.exe'木行; 一二谈差an 第第BUS £ 人人择合BE4区晟p y要的illke 01 Zo p&Wabt lora&T ! e i* data 传i、求交集2、to cantinuH求并集3、求集合的差:3七、附录(源代码)#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX_SIZE20#defineADD_SIZE10typedefstructSETchar*elem;intsize;intlength;set;setInitSet(s
16、ets)s.elem=(char*)malloc(MAX_SIZE*sizeof(char);s.size=MAX_SIZE;s.length=0;returns;setInput(sets)char*newbase;gets(s.elem);s.length+=strlen(s.elem);if(s.size<=s.length)newbase=(char*)realloc(s.elem,(s.size+ADD_SIZE)*sizeof(char);s.elem=newbase;s.size+=ADD_SIZE;returns;setInsertSet(sets,chare)s.ele
17、ms.length=e;s.elems.length+1='0's.length+;returns;setDelateSet(sets,intn)inti;for(i=n;i<=s.length;i+)s.elemi-1=s.elemi;s.length-;returns;voiddisplay(sets)puts(s.elem);setcheck(sets)inti,j,count;for(i=1;i<=s.length;i+)for(j=1;j<i;j+)if(s.elemi-1=s.elemj-1)s=DelateSet(s,i);i-;break;fo
18、r(i=1;i<=s.length;i+)if(s.elemi-1>'z'|s.elemi-1<'a')s=DelateSet(s,i);i-;returns;setSetMix(setset1,setset2,setset3)inti;for(i=1;i<=set1.length;i+)set3=InsertSet(set3,set1.elemi-1);for(i=1;i<=set2.length;i+)set3=InsertSet(set3,set2.elemi-1);set3=check(set3);set3=Sort(set
19、3);returnset3;setSetSame(setset1,setset2,setset3)inti,j;for(i=1;i<=set1.length;i+)for(j=1;j<set2.length;j+)if(set1.elemi-1=set2.elemj-1)set3=InsertSet(set3,set1.elemi-1);break;set3=check(set3);set3=Sort(set3);returnset3;setSetReduce(setset1,setset2,setset3)inti,j;for(i=1;i<=set1.length;i+)s
20、et3=InsertSet(set3,set1.elemi-1);for(i=1;i<=set3.length;i+)for(j=1;j<set2.length;j+)if(set3.elemi-1=set2.elemj-1)set3=DelateSet(set3,i);set3=check(set3);set3=Sort(set3);returnset3;setSort(sets)inti,j;chartemp;for(i=0;i<s.length-1;i+)for(j=0;j<s.length-i-1;j+)if(s.elemj>s.elemj+1)temp=s.elemj;s.elemj=s.elemj+1;s.elemj+1=temp;returns;main()inti;sets
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数学解题技巧与方法
- 2025版深圳租赁汽车租赁期限及责任划分合同2篇
- 2025版消防系统设计与施工合同模板3篇
- 应急预案的执行和改进
- 电力水利行业技术升级建议
- 男科护理工作总结
- 金融行业薪酬福利设计总结
- 二零二五年度个人之间生活费用借款合同2篇
- 小组合作学习在考试中的应用
- 二零二五年度公共设施防水保养合同4篇
- 盆腔炎教学查房课件
- 屋面细石混凝土保护层施工方案及方法
- 新概念英语课件NCE3-lesson15(共34张)
- GB/T 3683-2023橡胶软管及软管组合件油基或水基流体适用的钢丝编织增强液压型规范
- 电视剧《琅琊榜》特色分析
- 5A+Chapter+1+Changes+at+home+课件(新思维小学英语)
- 安徽省2023年中考数学试卷(附答案)
- 工程承接施工能力说明
- 北京有砟轨道结构及施工工艺讲解
- 机械加工生产计划排程表
- 女性生殖系统解剖与生理 生殖系统的血管淋巴和神经
评论
0/150
提交评论