版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程设计答辩PPT 集合的交,并和差运算嵌入式1091刘伟选择题目集合的交、并、差的运算1、问题描述:编写一个能演示执行集合的交、并、差的运算程序。2、基本要求:集合元素用小写英文字母,执行各种操作应以对话方式执行。2、算法要点:利用单链表表示集合;理解好三种运算的含义。设计要点:1、有序表的抽象数据类型定义为:readdata(pointer head)初始条件:head是以head为头节点的空链表。操作结果:生成以head为头节点的非空链表。pop(pointer head)初始条件:head是以head为头节点的非空链表。操作结果:将以head为头节点的链表中数据逐个输出。 2、
2、集合的抽象数据类型定义为:and(pointer head1,pointer head2,pointer head3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的并集构成的集合head3。or(pointer head1,pointer head2,pointer head3)初始条件:链表head1、head2、head3已存在操作结果:生成一个由head1和head2的交集构成的集合head3。differ(pointer head1,pointer head2,pointer head3)3、本程序抱含四个模块:1) 节点结构单元模块
3、定义有序表的节点结构;2) 有序表单元模块实现有序表的抽象数据类型;3) 集合单元模块实现集合获得抽象数据类型;4)主程序模块:Void main()初始化;do;;while(“命令”!=“退出”);算法的设计 1、定义结构体类型指针 :typedef struct LNodechar data;struct LNode*next;*pointer;3、定义输出集合:void pop(pointer head) pointer p;p=head-next;while(p!=NULL)printf(%c,p-data);p=p-next;printf(n);4、定义集合的并集函数:void a
4、nd(pointer head1,pointer head2,pointer head3)pointer p1,p2,p3;p1=head1-next;while(p1!=NULL) p3=(pointer)malloc(sizeof(struct LNode);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=(poi
5、nter)malloc(sizeof(struct LNode);p3-data=p2-data;p3-next=head3-next;head3-next=p3;p2=p2-next;6、定义集合的差集函数 :void differ(pointer head1,pointer head2,pointer head3 )pointer p1,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(size
6、of(struct LNode);p3-data=p1-data;p3-next=head3-next;head3-next=p3;p1=p1-next;7、主函数的设计:void main()int x; printf(输入数据,按回车键结束)n);pointer head1,head2,head3;head1=(pointer)malloc(sizeof(struct LNode);head1-next=NULL;head2=(pointer)malloc(sizeof(struct LNode);head2-next=NULL;head3=(pointer)malloc(sizeof(s
7、truct LNode);head3-next=NULL;printf(请输入集合1:n);readdata(head1);/调用输入集合函数printf(请输入集合2:n);readdata(head2);/调用输入集合函数A:printf(1.并集 2.交集 3.差集 4.结束 n); doprintf(请选择序号n);scanf(%d,&x);8、利用Switch语句:switch(x)case 1:printf(两集合的并是n);and(head1,head2,head3);/调用并集函数pop(head3);head3-next=NULL;break;case 2:printf(两集
8、合的交是n);or(head1,head2,head3);/调用交集函数pop(head3);head3-next=NULL;break;case 3: printf(两集合的差是n);differ(head1,head2,head3);/调用差集函数pop(head3);head3-next=NULL;break; case 4:break;default:goto A;while(x!=4);实验过程中出现的问题及解决方法:1、由于对集合的三种运算的算法推敲不足,在链表类型及其尾指针的设置时出现错误,导致程序低效。2、刚开始时曾忽略了一些变量参数的标识”&”,使调试程序浪费时间不少。今后应重视确定参数的变量和赋值属性的区分和标识。3、开始时输入集合后,程序只能进行一次运算,后来加入switch语句,成功解决了这一难题。4、该算法并不能排除重复输入相同字符的情况,也不能自动滤去非法字符(如空格、阿拉伯数字等)。5、本实习作业采用数据抽象的程序设计方案,将程序化分为四个层次结构,使得设计时思路清晰,实现时调试顺利,各模块具有较好的可用性,确实得到了一次良好的程序设计训练。课程设计心得 此次课程设计,做了关于集合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年铜陵普济圩现代农业集团有限公司公开招聘工作人员参考笔试题库附答案解析
- 中国金融出版社有限公司2026校园招聘4人参考考试题库及答案解析
- 2026年杭州市临安区卫健系统招聘高层次、紧缺专业技术人才7人参考考试试题及答案解析
- 2025年福建莆田市国睿产业园区运营管理有限公司企业员工招聘8人备考考试试题及答案解析
- 2025年嘉兴市经英人才发展服务有限公司城南分公司招录法律专业人才及法律辅助人员16人参考考试题库及答案解析
- 2026陕西渭南澄城县征集见习岗位和招募就业见习人员备考考试试题及答案解析
- 深度解析(2026)《GBT 25909.2-2010信息技术 维吾尔文、哈萨克文、柯尔克孜文编码字符集 24点阵字型 第2部分正文黑体》
- 2025年德州临邑县人民医院公开招聘备案制工作人员(15名)备考考试试题及答案解析
- 深度解析(2026)《GBT 25701-2010复摆颚式破碎机 金属单耗》(2026年)深度解析
- 深度解析(2026)《GBT 25616-2010土方机械 辅助起动装置的电连接件》(2026年)深度解析
- GB/T 45481-2025硅橡胶混炼胶医疗导管用
- GB/T 32468-2025铜铝复合板带箔
- 山西交控集团招聘笔试内容
- 大窑校本教材合唱的魅力
- 2025字节跳动智能广告发布服务合同(模板)
- 《建筑测绘》课件
- 《健康体检报告解读》课件
- 前台电话礼仪培训
- T-CET 402-2024 金属结构曲面屋顶晶硅组件建筑光伏一体化技术规范
- 智慧健康养老管理基础知识单选题100道及答案解析
- 车床设备大修计划方案
评论
0/150
提交评论