网站大量收购独家精品文档,联系QQ:2885784924

DSB第6章新.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSB第6章新.ppt

有序集:元素的汇集,其中每个元素可以出现一次或多次,并且出现次序是重要的。通常用()表示有序集。 例如:(1,2,3)与(3,2,1)不同。 (2)集合的运算 数学意义上,集合运算主要有: 求集合的并 求集合的差 求集合的交 判断两集合是否相等 4. 搜索算法分类 * 引 言 集合是一个基本的数学概念。逻辑上,集合中元素间不存在固有的关系。 组织集合的方法很多。例如:集合可以用线性表、搜索树、跳表和散列表表示。 本章将讨论集合的线性表表示,以及2种常用的搜索算法。第7章讨论表示集合的多种搜索树。第8章将介绍跳表和散列表表示的集合。 第6章 集合与搜索 内容提要 1.集合的基本概念 2.定义动态集ADT 3.集合的表示形式 4.顺序搜索 5.二分搜索 6.1 基本概念 课堂提要 第6章 集合与搜索 6.1 基本概念 6.2 顺序搜索 6.3 二分搜索 (a)集合结构 (b)线性结构 (c)树形结构 (d)图结构 图1-2 四种基本的结构关系 1.集合 (1)基本概念 集合:在数学上,集合是不同对象的无序汇集。 例如:集合{1,2,3}与{3,2,1}相同。 元素:集合的对象。在集合中,每个元素仅出现一次。 多重集:元素的无序汇集,其中每个元素可出现一次或多次。 通常,用{}表示无序集。 例如:集合{1,1,2,3}与{3,2,1,1}相同, 但与{1,2.3} 不同 。 6.1.1 集合与搜索 2.动态集 (1)动态集:在数据结构意义上,集合通常是动态的,在集合中可以插入和删除元素,因而称为动态集。 (2)集合元素定义 Templateclass K,class D Struct E { Operator K()const{return key;} //使元素间的比较视为关键字间的比较 K key; D data; } 其中,K称为关键字类型,应为可比较大小的类型。 key 为关键字。除关键字外的其他数据项归入data中。 关键字:数据元素中用来标识一个数据元素的某个数据项。 主关键字:可以唯一标识一个元素的关键字。 次关键字:用以识别若干元素的关键字。 本章中,若无特殊说明,都假定被搜索的关键字是主关键字。 3. 搜索运算 当信息量较少,整个集合元素都存放在内存中,称为表。否则,称为文件。搜索运算是表和文件上的最典型运算。 搜索:根据给定的某个值,在表中确定一个关键字值等于给定值的数据元素;若表中存在这样的元素,则称搜索成功,搜索结果可以返回整个数据元素,也可指示该元素在表中的地址;若表中不存在关键字等于给定值的元素,则称搜索不成功(失败)。 按元素是否在内存,分为: 内搜索:对表的搜索 外搜索:对文件的搜索 按关键字的比较情况,分为: 基于关键字比较的搜索 此类搜索将在第7章介绍 基于计算地址的搜索 此类搜索将在第8章介绍 6.1.2 动态集ADT ADT 6.1 动态集抽象数据类型 ADT DynamicSet{ 数据: 同类元素的有限汇集,其最大允许长度为MaxSetSize。元素由关键字标识,集合的元素各不相同。 运算: Create():创建一个空集合。 Destroy():撤消一个集合。 IsEmpty():若集合空,则返回true,否则返回false。 IsFull():若集合满,则返回true,否则返回false。 Search(x):在集合中搜索与x的关键字值相同的元素。如果存在该元素,则将其值赋给x,并且函数返回Success;否则返回NotPresent。 Insert(x): 在集合中搜索与x的关键字相同的元素。若集合中存在该元素,则将其值赋给x,函数返回Duplicate。否则,若集合已满,则函数返回Overflow;若集合未满,则在表中插入值为x的元素,函数返回Success。 Remove(x): 在集合中搜索与x的关键字值相同的元素。如果存在该元素,则将其值赋给x,并从集合中删除之,函数返回Success;否则返回NotPresent。 }  程序6.1 动态集的C++模板抽象类 template class T class DynamicSet { public: virtual ResultCode Search(T& x) const=0; virtual ResultCode Insert(T& x)=0; vi

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档