版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计答辩PPT集合的交,并和差运算嵌入式1091刘伟1选择题目集合的交、并、差的运算1、问题描述:编写一个能演示执行集合的交、并、差的运算程序。2、基本要求:集合元素用小写英文字母,执行各种操作应以对话方式执行。2、算法要点:利用单链表表示集合;理解好三种运算的含义。2设计要点:1、有序表的抽象数据类型定义为:readdata(pointerhead)初始条件:head是以head为头节点的空链表。操作结果:生成以head为头节点的非空链表。pop(pointerhead)初始条件:head是以head为头节点的非空链表。操作结果:将以head为头节点的链表中数据逐个输出。2、集合的抽象数据类型定义为:and(pointerhead1,pointerhead2,pointerhead3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的并集构成的集合head3。or(pointerhead1,pointerhead2,pointerhead3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的交集构成的集合head3。differ(pointerhead1,pointerhead2,pointerhead3)33、本程序抱含四个模块:1)
节点结构单元模块——定义有序表的节点结构;2)
有序表单元模块——实现有序表的抽象数据类型;3)
集合单元模块——实现集合获得抽象数据类型;4)主程序模块:Voidmain(){初始化;do{……;……;}while(“命令”!=“退出”);}4算法的设计
1、定义结构体类型指针:typedefstructLNode{ chardata; structLNode*next;}*pointer;52、定义输入集合函数:voidreaddata(pointerhead)//定义输入集合函数{ pointerp; chartmp; scanf("%c",&tmp); while(tmp!='\n') { p=(pointer)malloc(sizeof(structLNode)); p->data=tmp; p->next=head->next; head->next=p; scanf("%c",&tmp); }}63、定义输出集合:voidpop(pointerhead){pointerp; p=head->next; while(p!=NULL) { printf("%c",p->data); p=p->next; } printf("\n");}74、定义集合的并集函数:voidand(pointerhead1,pointerhead2,pointerhead3){ pointerp1,p2,p3; p1=head1->next; while(p1!=NULL) { p3=(pointer)malloc(sizeof(structLNode)); p3->data=p1->data; p3->next=head3->next; head3->next=p3; p1=p1->next; } p2=head2->next; while(p2!=NULL) { p1=head1->next; while((p1!=NULL)&&(p1->data!=p2->data)) p1=p1->next; if(p1==NULL) { p3=(pointer)malloc(sizeof(structLNode)); p3->data=p2->data; p3->next=head3->next; head3->next=p3; } p2=p2->next; }}85、定义集合的交集函数:voidor(pointerhead1,pointerhead2,pointerhead3){ pointerp1,p2,p3; p1=head1->next; while(p1!=NULL) { p2=head2->next; while((p2!=NULL)&&(p2->data!=p1->data)) p2=p2->next; if((p2!=NULL)&&(p2->data==p1->data)) { p3=(pointer)malloc(sizeof(structLNode)); p3->data=p1->data; p3->next=head3->next; head3->next=p3; } p1=p1->next; }}96、定义集合的差集函数:voiddiffer(pointerhead1,pointerhead2,pointerhead3){ pointerp1,p2,p3; p1=head1->next; while(p1!=NULL) { p2=head2->next; while((p2!=NULL)&&(p2->data!=p1->data)) p2=p2->next; if(p2==NULL) { p3=(pointer)malloc(sizeof(structLNode)); p3->data=p1->data; p3->next=head3->next; head3->next=p3; } p1=p1->next; }}107、主函数的设计:voidmain(){ intx;printf("(输入数据,按回车键结束)\n"); pointerhead1,head2,head3; head1=(pointer)malloc(sizeof(structLNode)); head1->next=NULL; head2=(pointer)malloc(sizeof(structLNode)); head2->next=NULL; head3=(pointer)malloc(sizeof(structLNode)); head3->next=NULL; printf("请输入集合1:\n"); readdata(head1);//调用输入集合函数
printf("请输入集合2:\n"); readdata(head2);//调用输入集合函数A:printf("1.并集2.交集3.差集4.结束\n");do{ printf("请选择序号\n"); scanf("%d",&x);118、利用Switch语句:switch(x){case1: printf("两集合的并是\n"); and(head1,head2,head3);//调用并集函数
pop(head3); head3->next=NULL; break;case2: printf("两集合的交是\n"); or(head1,head2,head3);//调用交集函数
pop(head3); head3->next=NULL; break;case3:printf("两集合的差是\n"); differ(head1,head2,head3);//调用差集函数
pop(head3); head3->next=NULL; break;case4:break; default:gotoA;} }while(x!=4);}12输出界面:13实验过程中出现的问题及解决方法:1、由于对集合的三种运算的算法推敲不足,在链表类型及其尾指针的设置时出现错误,导致程序低效。2、刚开始时曾忽略了一些变量参数的标识”&”,使调试程序浪费时间不少。今后应重视确定参数的变量和赋值属性的区分和标识。3、开始时输入集合后,程序只能进行一次运算,后来加入switch语句,成功解决了这一难题。4、该算法并不能排除重复输入相同字符的情况,也不能自动滤去非法字符(如空格、阿拉伯数字等)。5、本实习作业采用数据抽象的程序设计方案,将程序化分为四个层次结构,使得设计时思路清晰,实现时调试顺利,各模块具有较好的可用性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 墨锭制作工安全宣传考核试卷含答案
- 金属屋面工达标能力考核试卷含答案
- 珍珠岩制品工岗位应急技能考核试卷含答案
- 炭素煅烧工岗前培训效果考核试卷含答案
- 冷链食品安全管理员变革管理能力考核试卷含答案
- 渔船无线电操作员环保竞赛考核试卷含答案
- 内控管理职业进阶指南
- 百威集团职业发展体系
- 全国儿童预防接种日宣传工作总结
- CBD项目EPC总承包协调管理方案-施工组织设计
- DB63T 2338-2024 国家公园珍稀濒危野生植物监测技术规范
- 医院培训课件:《肾囊性病变超声诊断》
- 2024年湖南钢铁集团有限公司校园招聘考试试题全面
- 妊娠合并子宫肌瘤护理查房
- 重症医学科护理
- 电土施表13.3-7 排(雨)水管道灌水(通水)试验记录
- 小学英语教师进城选调考试试题及答案
- 新庄湾联合站工艺设计(说明书、计算书)
- 经鼻内镜鼻窦手术配合
- 完整解读中华人民共和国政府信息公开条例课件
- 肺大疱(心胸外科)
评论
0/150
提交评论