《数据结构A》第06章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据结构A》第06章课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构A 数据结构 06 课件
- 资源描述:
-
1、6.1基本概念基本概念6.2顺序搜索顺序搜索6.3二分搜索二分搜索6.1.1集集合合在在数数学学上上,是是不不同同对对象象的的无无序序汇汇集集 ,集集合合的的对对象象称称为为元元素素或或成成员员,每每个个元元素素仅仅出出现现一一 是是元元素素的的无无序序汇汇集,集,其其中,中,每每个个元元素素可可出出现现一一次次或或多多次。次。例例如,如,多多重重集集 1,1,1,1,2,2,3 3 与与 1,1,2,2,3,3,11相相同,同,但但与与 1,1,2,2,33不不同。同。通通常常用用大大括括号号表表示示。一一个个是是元元素素的的汇汇集,集,其其中,中,每每个个元元素素可可以以出出现现一一次次或
2、或多多次,次,并并且且它它们们的的出出现现次次序序是是重重要要的的(如如同同向向量量一一样)样)。通通常常用用圆圆括括号号表表示示有有序序集,集,例例如,如,(2 2,1 1,3 3)。多多重重集集无无序序集集有有序序集集 (简称(简称集合集合)作为一种数据结构,我)作为一种数据结构,我们将它视为同类型数据元素的们将它视为同类型数据元素的。集合的数据。集合的数据元素之间除了元素之间除了“同属于一个集合同属于一个集合”的联系之外没的联系之外没有其它关系。一般地,我们假定所讨论的集合不有其它关系。一般地,我们假定所讨论的集合不包含相同元素。数据结构意义上的集合通常是动包含相同元素。数据结构意义上的
3、集合通常是动态的,在集合中可以插入和删除元素,因而被称态的,在集合中可以插入和删除元素,因而被称为为 。元素类型元素类型templatestructEoperatorK()constreturnkey;Kkey;Ddata;其中,其中,K和和D是用户定义的数据类型,是用户定义的数据类型,K被称为被称为关键字类型关键字类型,key是关键字,我们要求类型是关键字,我们要求类型K是是C/C+语言允许的,可以比较大小的类型。除关键语言允许的,可以比较大小的类型。除关键字外的其它数据项归入字外的其它数据项归入data域部分,域部分,D可以是简单可以是简单类型,也可以是结构类型。类型,也可以是结构类型。关
4、键字关键字是用以标识一个数据元素的某个数据项。是用以标识一个数据元素的某个数据项。若此关键字可以惟一标识一个元素,则称此关键若此关键字可以惟一标识一个元素,则称此关键字字为为主关键字主关键字。集合中,不同数据元素有不同的主。集合中,不同数据元素有不同的主关键字值。关键字值。称可用以识别若干数据元素的关键字为称可用以识别若干数据元素的关键字为次关键字次关键字。当数据元素是初等数据类型时,其关键字值即数据当数据元素是初等数据类型时,其关键字值即数据元素值。元素值。在本章讨论中,若非特殊说明,都假定被搜索的在本章讨论中,若非特殊说明,都假定被搜索的关键字为主关键字。关键字为主关键字。搜索搜索:根据给
5、定的某个值,在表中确定一个关键字值:根据给定的某个值,在表中确定一个关键字值等于给定值的数据元素,若表中存在这样的元素,则等于给定值的数据元素,若表中存在这样的元素,则称称搜索成功搜索成功,搜索结果可以返回整个数据元素,也可,搜索结果可以返回整个数据元素,也可指示该元素在表中的地址;若表中不存在关键字值等指示该元素在表中的地址;若表中不存在关键字值等于给定值的元素,则称于给定值的元素,则称搜索不成功搜索不成功(也称(也称搜索失败搜索失败)。)。搜索算法分类搜索算法分类 搜索算法可以按元素是否全部在内存分为:搜索算法可以按元素是否全部在内存分为:内搜内搜索索 和和外搜索外搜索。我们将对表的搜索称
6、为。我们将对表的搜索称为内搜索内搜索,而对文,而对文件的搜索称为件的搜索称为外搜索外搜索。如果一个搜索算法只是单纯搜索一个元素,称为如果一个搜索算法只是单纯搜索一个元素,称为静态搜索静态搜索,如果在搜索不成功时,需将被搜索的元素,如果在搜索不成功时,需将被搜索的元素插入表中,这样的搜索被称为插入表中,这样的搜索被称为动态搜索动态搜索,这种将搜索,这种将搜索和插入结合起来的算法常称为和插入结合起来的算法常称为符号表算法符号表算法,被编译程,被编译程序用于构造标识符表。序用于构造标识符表。搜索算法还可以根据算法中是否以关键字值间的比搜索算法还可以根据算法中是否以关键字值间的比较为基础,或由关键字值
7、直接计算元素地址,分为较为基础,或由关键字值直接计算元素地址,分为和和,本章和,本章和第第9 9章的搜索属于前者,第章的搜索属于前者,第1010章的散列表搜索属于后者章的散列表搜索属于后者 6.1.2 动态集动态集ADT 同同类类元元素素的的有有限限汇汇集,集,其其最最大大允允许许长长度度为为MaxSetSize。元元素素由由关关键键字字标标识,识,集集合合的的元元素素各各不不相相同。同。Create();创创建建一一个个空空集集合。合。Destroy():撤撤消消一一个个集集合。合。IsEmpty():若若集集合合为为空,空,则则返返回回true,否否则则返返回回false。IsFull()
8、:若若集集合合满,满,则则返返回回true,否否则则返返回回false。运运算:算:在表中搜索与在表中搜索与x的关键字值相同的元素。的关键字值相同的元素。如果存在该元素,则将其值赋给如果存在该元素,则将其值赋给x,并且函数返回,并且函数返回Success;否则返回;否则返回NotPresent。在表中搜索与在表中搜索与x的关键字值相同的元素。的关键字值相同的元素。若表中存在该元素,则将其值赋给若表中存在该元素,则将其值赋给x,函数返回,函数返回Duplicate。否则,若表已满,则函数返回。否则,若表已满,则函数返回Overflow;若表未满,则在表中插入值为;若表未满,则在表中插入值为x的元
9、素,的元素,函数返回函数返回Success。在表中搜索与在表中搜索与x的关键字值相同的元素。的关键字值相同的元素。如果存在该元素,则将其值赋给如果存在该元素,则将其值赋给x,并从表中删除,并从表中删除之,函数返回之,函数返回Success;否则返回;否则返回NotPresent。Underflow,Overflow,Success,Duplicate,NotPresent,.;virtualResultCodeSearch(T&x)const=0;virtualResultCodeInsert(T&x)=0;virtualResultCodeRemove(T&x)=0;virtualboolI
10、sEmpty()const=0;virtualboolIsFull()const=0;6.1.3集合的表示集合的表示templateclassListSet:publicDynamicSetpublic:ListSet(intmSize);ListSet()deletel;boolIsEmpty()constreturnn=0;boolIsFull()constreturnn=maxSize;ResultCodeSearch(T&x)const;ResultCodeInsert(T&x);ResultCodeRemove(T&x);private:T*l;/指针指针l指向一个一维数组指向一个一
11、维数组intmaxSize;intn;6.2.1 无序表的顺序搜索无序表的顺序搜索templateResultCodeListSet:Search(T&x)constfor(inti=0;in;i+)if(li=x)x=li;returnSuccess;/搜搜索索成成功功returnNotPresent;/搜搜索索失失败败6.2.2有有序序templateResultCodeListSet:Search(T&x)constfor(inti=0;i+)if(li=x)x=li;returnSuccess;/搜索成功搜索成功returnNotPresent;/搜索失败搜索失败6.2.3 平平 搜搜
展开阅读全文