- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
福州大学数学与计算机科学学院 第五章 集合 学习要点: 以集合为基础的抽象数据类型 ? 理解集合的概念。 ? 理解以集合为基础的抽象数据类型。 ? 掌握用位向量实现集合的方法。 ? 掌握用链表实现集合的方法。 5.0 引言 5.0.1 集合的概念的原形 银行中所有储户帐号的集合;图书馆中 所有藏书的集合;一个程序中所有标识 符的集合;2003级34班全体同学的集合等 5.0 引言 5.0.2 集合的概念与术语 集合:集合是由元素(成员)组成的一个类。 原子:不可再分的元素。 多重集合:允许同一元素在集合中多次出现的集合称为多重集合。 有序集:当由原子组成的集合具有线性序关系“”时,称该集合为有序集。“”是集合的一个线性序,它满足:(1)若a、b是集合中任意2个原子,则ab,a=b和 ba三者必居其一;(2)a,b和c是集合中的原子,且ab,bc则ac(传递性)。 5.0 引言 5.0.2 集合的概念与术语 记录:集合中的元素通常是记录。 项(域):元素的属性。元素通常有多个项。 键(值):能唯一地标识元素的值。它也是元素的属性。有序集通常以键(值)的序为序。 约定以下常将一个元素当作一个键来处理,但要记住键只是元素记录中许多域中的一个域。 5.0 引言 5.0.3 集合的记号 枚举式:把集合的元素枚举在一对花括号中。 例如{1,4}表示由1和4两个元素组成的集合。 集合中元素的枚举顺序是任意的。例如{1,4} 和{4,1}表示同一集合。这种方式只对有穷 集可行。 解析式:把集合的元素应满足的条件解析地表 达在一对花括号中。例如 { x|存在整数y,使 x = y2 }表示由全体完全平方数组成的集合。这 种方式既可表示有穷集,又可表示无穷集。 5.0 引言 5.0.4 集合的基本运算 元素与集合之间的成员关系:x?A 集合之间的包含关系:A?B 集合之间的并:A∪B 集合之间的交:A∩B 集合之间的差:A-B 集合之间的异或:A十B=(A-B ) ∪(B-A) 5 以集合为基础的抽象数据类型 5.1 ADT集合支持的基本运算 约定:其中大写字母表示一个集合,小写字母表示集合中的一个元素。 (1) + (A):并集运算。 (2) * (A):交集运算。 (3) - (A):差集运算。 (4) = (A):赋值运算。 (5) = =(A):判等运算。 (6) Member(x):成员运算。 (7) Insert(x):插入运算。 (8) Delete(x):删除运算。 (9) Min( ):最小元运算(仅适用于有序集) 。 (10) Find(x):查找集合运算,作用在一个由不相交集合组成的类上,返回包含元素x的集合的名字。 5 以集合为基础的抽象数据类型 5.2 ADT集合的简单实现——用位向量实现 5.2.1 用位向量实现ADT集合 约定所讨论的集合都是全集合{1,2,…,N }的子集,而且N是一个不大的固定整数。对此,任何一个集合A?{ 1,2,…,N },都可以用它的特征函数: 5 以集合为基础的抽象数据类型 5.2 ADT集合的简单实现——用位向量实现(续) 5.2.1 位向量实现的集合类BitSet的定义 template class T class BitSet { public: BitSet(int setsize); BitSet(const BitSetT x); ~BitSet(void); BitSetT operator= (const BitSetT x); int Member(const T x); int operator== (const BitSetT x) const; } 5 以集合为基础的抽象数据类型 5.2 ADT集合的简单实现——用位向量实现(续) 5.2.1 位向量实现的集合类BitSet的定义(续) BitSet Toperator+ (const BitSetT x) const; BitSet T operator* (const BitSetT x) const; BitSet T operator- (const BitSetT x) const; void Insert(const T x); void Delete(const T x); // 支持友元I/O 运算 friend istream operator (istream istr,BitSetT x);
文档评论(0)