1/7
文档分类:办公文档

C 集合类.docx


下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

下载所得到的文件列表
C 集合类.docx
文档介绍:
EvaluationWarning:ThedocumentwascreatedwithSpire..集合的概念在数学中,我们把具有某些共同特征的元素构成的一个整体称为集合 .一个集合就是由同一种有序类型的一组数据元素所组成的,这一种有序类型称为该集合的基类型.课堂练习:设计一个集合类numSet,存放有序的整型数序,其中的元素按从小到大的顺序排列并且不包含相同的元素,要求:1)向数序中添加元素(过滤重复数据)并保持有序2)从数序中查找数据元素并删除数序中元素的个数存放数序的数组向有序数组中添加元素从有序数组中查找元素并删除构造函数输出有序数组分析:数据成员:intcount; //inta[MAX];//成员函数:voidaddnum(intn);//v0iddelenum(intn);//numSet(){count=0;}//voiddisp();//测试数据:numSetset1,set2;set1.addnum(3);set1.addnum(2);set1.addnum(1);set1.disp();set1.delenum(2);set1.disp();3)求两个整数数序的合并数序分析:增加友元函数:friendnumSetunionset(numSet&s1,numSet&s2);返回s1与s2合并的结果即:S={s1,s2}s1:i=0i<counti++s2:j=0j<countj++s1.a[i]与s2.a[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和s2intcount;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<s1.count&&j<s2.count){intv1=s1.a[i];intv2=s2.a[j];if(v1<v2){s.addnum(v1);i++;}elseif(v1>v2){s.addnum(v2);j++;}else{s.addnum(v1);i++;j++;}}while(i<s1.count){intv1=s1.a[i];s.addnum(v1);i++;}while(j<s2.count){intv2=s2.a[ 内容来自淘豆网www.taodocs.com转载请标明出处.