版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数据结构 课程设计报告题 目: 集 合 运 算 学生姓名: 童 侃 学 号: 200917010241 专业班级: 计科09102班 指导教师: 邹汉斌 设计时间: 2011年上学期第2周 指导老师意见: 评定成绩: 签名: 日期:1、程序简介 此程序是解决集合运算的一个程序。它使用链表来表示集合,并完成集合的一些操作,其中包括交集运算、并集运算以及差集运算。 程序采用多文件的方式构成,包括主函数、界面操作、链表的建立与输出以及三个操作函数。主函数主要起对其他文件中的函数调用的作用;界面操作主要包含主界面及一个选择函数,起到对操作函数的调用作用;链表的建立和输出函数是对题目要求的满足,为操作
2、函数分配空间等作用;三个操作函数分别为:交际运算、并集运算、差集运算。 构成图操作函数链表界面主函数2、系统实现(1)主函数:#include<iostream>#define MAXSIZE 10 /最大集合个数static int COUNT=0; /记录集合个数using namespace std;#include"11.h"#include"12.h"#include"13.h"int main()output(); /输出数据menu (); /主菜单return 0;( 2 ) 主界面:void select
3、 ()int i,k;cout<<" 请注意,下面开始进入系统!"<<endl;cout<<" "<<endl;cout<<" * 集合的运算 *"<<endl;cout<<" "<<endl;cout<<" *"<<endl;cout<<" * 1.交集运算 *"<<endl;cout<<" * 2.并集运算
4、*"<<endl;cout<<" * 3.差集运算 *"<<endl;cout<<" * 4.退出 *"<<endl;cout<<" *"<<endl;cout<<" "<<endl;cout<<"请选择(1-4):"while(1)cin>>k; if(k<1|k>4) cout<<endl<<"t输入错误,
5、请重新输入:(1-4) " elsebreak;switch(k)case 1: H=Cross(L0,L1);if(COUNT>2)for(i=2;i<COUNT;i+)H=Cross(H,Li);printf(H);select ();break;case 2: H=Union(L0,L1);if(COUNT>2)for(i=2;i<COUNT;i+)H=Union(H,Li);printf(H);select ();break; case 3:H=Subtract(L0,L1);if(COUNT>2)for(i=2;i<COUNT;i+)H=
6、Subtract(H,Li);printf(H);select ();break;case 4: return; (3)链表及输出函数typedef struct LNodeint data; /数据struct LNode *next; /指针LNode;LNode *LMAXSIZE,*H;LNode * Linklist(LNode *L) /建立链表LNode *q;int i;L=NULL;cout<<" 请您输入集合数据:"<<endl;cin>>i;while(i!=0)q= (LNode*)malloc(sizeof(LN
7、ode);while(!q)cout<<"分配内存失败!"<<endl;q->data =i;q->next=L;L=q;cin>>i; q=NULL;return L;void printf(LNode *L) /输出链表 LNode *q;int count=0;q=L;if(q=NULL)cout<<"集合为空!"<<endl;cout<<"集合数据:"while(q)cout<<q->data<<" &q
8、uot;q=q->next ;+count;cout<<"数据元素个数:"<<count<<endl;void output()int i;cout<<"请问您要构建几个集合(小于10个):"cin>>i;COUNT=i;cout<<"!输入数据时,输入0表示输入结束"<<endl;while(i)cout<<"集合"<<COUNT-i+1;LCOUNT-i=Linklist(LCOUNT-i);i-;
9、(4)操作函数【1】交集运算LNode * Cross(LNode *L1,LNode *L2) LNode *q1,*q2,*L,*q;L=NULL;q1=L1;while(q1!=NULL)q2=L2;while(q2!=NULL)if(q2->data=q1->data)q= (LNode*)malloc(sizeof(LNode);q->data=q2->data;q->next=L;L=q;break;q2=q2->next;q1=q1->next;return L;【2】并集运算LNode * Union(LNode *L1,LNode *
10、L2)LNode *q1,*q2,*L,*q;int frag=0;L=NULL;q1=L1;while(q1!=NULL)q= (LNode*)malloc(sizeof(LNode);q->data=q1->data;q->next=L;L=q;q1=q1->next; q2=L2;while(q2!=NULL)q1=L1;frag=0;if(q1!=NULL)while(q1)if(q1->data=q2->data)frag=1;break;q1=q1->next;if(frag!=1)q= (LNode*)malloc(sizeof(LNod
11、e);q->data=q2->data;q->next=L;L=q;q2=q2->next;return L;【3】差集运算LNode * Subtract(LNode *L1,LNode *L2)LNode *L,*p,*q,*test;int flag=0;p=L1;q=L2;L=NULL;while(p)/ 直接除掉L1中包含在L2中的元素flag=0;while(q)if(p->data=q->data)flag=1;break;q=q->next;if(flag=0)test= (LNode*)malloc(sizeof(LNode);test->data=p->data;test->next=L;L=test;p=p->next;return L; 3、系统测试 主界面交集运算并集运算4、心得体会 通过本次的课程设计,我进一步加深了对数据结构的了解和认识。虽然我选的题目不是很难,但是正因为这个题目,它让我更好地巩固了以前所学的知识,扎实了基础。前一次的课程设计告诉我的经验是团队的重要性,而此次给我的启示是:对待一个问题应该先做好分析工作,只有正确的分析问题才能找出好的方法,否则会误入歧途。俗话说磨刀不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025固定资产外汇借贷合同样本
- 2025有关合同作废声明「」
- 二零二五年度仓储仓储消防设施安装与维护协议2篇
- 二零二五年度养老院场地租赁与养老服务质量保障合同3篇
- 2025年度车辆驾驶员意外伤害赔偿合同4篇
- 二零二五年度旅行社亲子游套餐服务合同范本4篇
- 二零二五版木地板原材进口与出口贸易合同4篇
- 二零二五年度酒店客房预订取消退款合同4篇
- 二零二五年度瓷砖专卖店新品发布与上市合作协议4篇
- 2025西安市家庭居室装饰装修工程施工合同
- 春节联欢晚会节目单课件模板
- 中国高血压防治指南(2024年修订版)
- 糖尿病眼病患者血糖管理
- 抖音音乐推广代运营合同样本
- 2024年电信综合部办公室主任年度述职报告(四篇合集)
- 微机原理与接口技术考试试题及答案(综合-必看)
- 湿疮的中医护理常规课件
- 初中音乐听课笔记20篇
- NUDD新独难异 失效模式预防检查表
- 内蒙古汇能煤电集团有限公司长滩露天煤矿矿山地质环境保护与土地复垦方案
- 排水干管通球试验记录表
评论
0/150
提交评论