- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
集合的交并差实验报告
用单链表实现集合的并,交,差运算
需求分析
求两个字符集合的交、并、差:
(1) 输入字符的范围:小写字母a,b,…,y,z
(2) 输出的形式:字符集合,按从a到z的顺序排列
(3) 程序所能达到的功能:分别求两个字符集合的交、并、差
系统设计
主程序的流程与调用关系:
(1)调用CreateList_L(L,n)函数建立单链表La和Lb;
(2)调用SortList_L(L)函数对La和Lb排序;
(3)选择要进行的操作,若为1则调用Intersect_L(La,Lb,Lc)函数求交;若为2则调用UnionList_L(La,Lb,Lc)函数求并;若为3则调用Difference_L(La,Lb)函数求差;
(4)调用PrintList(L)函数输出结果
3.调试分析
(1).调试过程中遇到的问题:
在求并与交时去不掉重复出现的字母,如set1=”magazine” , set2 = “paper”,求出set1 ∪ set2=” aaegimnprz”,出现了两个a。原来想在求并/交的过程中把重复的字母去掉,但没有成功,所以另外编了一个函数Quchong(LinkList Lc)专门对求完并/交的字符集合去重。
(2) 算法的时间复杂度分析:
求交:T(n)=O(mn);
求并:T(n)=O(n);
求差:T(n)=O(mn);
(3) 改进思想:求交的算法改进后时间复杂度可以为O(n),在求交之前已经对两个字符集合排过序了,因此不必每次都从头到尾进行查找。
4.测试结果
⑴ set1=”magazine” , set2 = “paper”,求set1 ∩ set2 :
⑵ set1=” paper” , set2 = “magazine”,求set1 ∪ set2 :
⑶ set1=”magazine” , set2 = “paper”,求set1 - set2 :
(4)无效选择 :
5、用户手册
1. 按屏幕提示输入字符串1的长度,回车后输入字符串1;
2. 按屏幕提示输入字符串2的长度,回车后输入字符串2;
3. 按屏幕提示选择操作,1、2、3是有效选择,否则提示“选择无效!”;
4. 输出结果,按任意键退出
6、附录
源程序:
#includestdio.h
#includestdlib.h
typedef struct LNode{
char data;
struct LNode *next;
}LNode,*LinkList;
void CreateList_L(LinkList L,int n){
int i;char m;
LinkList p,rear;
L=rear=(LinkList)malloc(sizeof(LNode));
L-next=NULL;
scanf(%c,m);
for(i=1;i=n;i++){
p=(LinkList)malloc(sizeof(LNode));
scanf(%c,p-data);
p-next=NULL;
rear-next=p;
rear=p;}
}
void SortList_L(LinkList L){ //排序
int temp;
LinkList p,q,small;
for(p=L-next;p-next!=NULL;p=p-next)
{small=p;
for(q=p-next;q;q=q-next)
if(q-datasmall-data)
small=q;
if(small!=p)
{temp=p-data;
p-data=small-data;
small-data=temp;}
}
}
void PrintList(LinkList L){ //输出
LinkList p;
p=L-next;
do{
printf(%c,,p-data);
p=p-next;
}while(p);
printf(\n);
}
void Quchong(LinkList Lc){ //去重
LinkList pc,p,q;
for(pc=Lc-next;pc;pc=pc-next)
for(p=pc-next;p;p=p-next)
{if(pc-data==p-data)
{q=p;
p=p-next;
pc-next=p;
free(q);}
}
}
void Intersect_L(LinkList La,LinkList Lb,LinkList Lc){ //求交
LinkList pa,pb,pc,p;
Lc=pc=(LinkList)malloc(sizeof(LNode));
Lc-next=NULL;
for(pb=Lb-next;pb;pb=pb-next)
{pa=La-nex
您可能关注的文档
- 七下 unit9 测试卷.doc
- 电焊工专业训练安全操作规程.doc
- 长效管理实施细则.doc
- 四年级英语下第一单元课时单词过关.doc
- 线 切 割 实 训 安 全 教.ppt
- 静力学自测题.doc
- 函数的极限课堂笔记.doc
- 铝用化成处理.pdf
- v-t图的描绘及分析.ppt
- 久智1对1 精致您的生活.doc
- 南京市西善桥中心小学运动场及其他零星改建项目可研4-22-1.doc
- 20191003-腾陇指挥部-安全隐患整改回复单-桥梁专项.doc
- 无人机航测技术培训 (1).pdf
- 技术标-中电四公司.doc
- 2021年第10期(总第19期)10月金川厂房监理月报.doc
- 昌南十五子项交通.pdf
- 20210722 TCC Facade Spec (REV C update)-工程技术说明书.pdf
- (汇总,,)重庆太平坝乡新龙湾风电项目-技经改.doc
- 6.Detail Design&Optimization Proposals深化设计和优化建议.doc
- 住建机关党组书记2025年度民主生活会个人对照检查材料(五个带头)文稿.docx
最近下载
- 外研版初中英语单词总表(7~9年级).pdf VIP
- 第十三课 实现人生价值(课件)七年级道德与法治上册课件(统编版2024).pptx VIP
- 视频监控系统调试记录.xls VIP
- 2025至2030中国骨关节补充剂行业市场深度研究与战略咨询分析报告.docx
- 新版《建筑设计服务计费指导》.pdf VIP
- 如何写课例研究报告课件.ppt VIP
- 辽宁省单招考试题库.docx VIP
- 大学英语四级考试2024年12月真题(第一套)Part IV Translation.pptx VIP
- 国有企业党委书记2024-2025年生活会个人对照检查发言材料(四个带头+典型案例).docx VIP
- 北京市海淀区2024-2025学年四年级上册期末考试数学试卷(含答案).pdf VIP
原创力文档


文档评论(0)