下载此文档

C 集合类.doc


文档分类:办公文档 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
C++集合类集合的概念在数学中,,:设计一个集合类numSet,存放有序的整型数序,其中的元素按从小到大的顺序排列并且不包含相同的元素,要求:1)向数序中添加元素(过滤重复数据)并保持有序2)从数序中查找数据元素并删除分析:数据成员:intcount;//数序中元素的个数inta[MAX];//存放数序的数组成员函数:voidaddnum(intn);//向有序数组中添加元素v0iddelenum(intn);//从有序数组中查找元素并删除numSet(){count=0;}//构造函数voiddisp();//输出有序数组 测试数据:numSetset1,set2;(3);(2);(1);();(2);();3)求两个整数数序的合并数序分析:增加友元函数:friendnumSetunionset(numSet&s1,numSet&s2);返回s1与s2合并的结果即:S={s1,s2}s1:i=0i<counti++s2:j=0j<countj++[i][j]比较确定添加顺序例:set3=unionset(set1,set2);set1:{1,2,3}set2:{2,4,5,6}set3:{1,2,3,4,5,6}#include<iostream>usingnamespacestd;constintMAX=20;classNumset{ friendNumsetunionset(Numset&s1,Numset&s2);//合并数序s1和s2 intcount; inta[MAX]; public: Numset(){count=0;} voidaddnum(intn) { inti=0,j; while(i<count) if(n>a[i])i++; elsebreak;//条件合并可简化逻辑while(i<count&&n>a[i])i++; if(n==a[i])return; for(j=count;j>i;j--) a[j]=a[j-1]; a[i]=n; count++; } voiddisp() { for(inti=0;i<count;i++) cout<<a[i]<<""; cout<<endl; } intgeti(inti){returna[i];}};Numsetunionset(Numset&s1,Numset&s2){Numsets;inti=0,j=0;while(i<&&j<){intv1=[i];intv2=[j];if(v1<v2){(v1);i++;}elseif(v1>v2){(v2);j++;}else{(v1);i++;j++;}}while(i<) {intv1=[i];(v1);i++; }while(j<) {intv2=[j];(v2);j++; }returns;}intmain(){ Numsetset1,set2,set3; (1); (3); (2); (6); cout<<"数序一为:"<<endl; ();(3); (5); (7); (4); cout<<"数序二为:"<<endl; (); set3=unionset(set1,set2); cout<<"数序一与数序二合并为:"; (); return0;}练****1、要求:定义一个集合类,要求:(1)集合中的元素可用数组存放,也可用链表存放,参考提示:用数组存放时,集合中数据成员①元素个数②数组(定义时用最大值)用链表存放时,集合中数据成员①元素个数②*指针(定义时指向结点类型)(2)构造函数要求:能够通过从键盘上输入数据的形式,给集合中各元素赋值(3)要求能实现显示集合中元素个数(4)能显示集合中的元素(5)能向集合中增加元素(6)能从集合中删除元素(7)能实现两个集合的+(U)相并(8)能实现两个集合的×()相交(8)能实现两个集合的(差集)(9)在主函数中实现上述功能(创建对象,输入集合中元素,显示元素及个数,能增、删元素

C 集合类 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人书犹药也
  • 文件大小44 KB
  • 时间2019-10-12