数据结构第七章查找ppt课件.ppt

数据结构第七章查找ppt课件.ppt

ID:59265598

大小:1.37 MB

页数:132页

时间:2020-09-22

数据结构第七章查找ppt课件.ppt_第1页
数据结构第七章查找ppt课件.ppt_第2页
数据结构第七章查找ppt课件.ppt_第3页
数据结构第七章查找ppt课件.ppt_第4页
数据结构第七章查找ppt课件.ppt_第5页
资源描述:

《数据结构第七章查找ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构第七章查找8/12/2021查找(Search)的概念查找:就是在数据集合中寻找满足某种条件的数据对象。查找表:是由同一类型的数据元素(或记录)组成的数据集合。查找的结果通常有两种可能:查找成功,即找到满足条件的数据对象。查找不成功,或查找失败。作为结果,报告一些信息,如失败标志、失败位置等。何谓查找表?查找表是由同一类型的数据元素(或记录)构成的集合。由于“集合”中的数据元素之间存在着松散的关系,因此查找表是一种应用灵便的结构。对查找表经常进行的操作:1)查询某个“特定的”数据元素是否在查找表中;2)检索某个“特定的”数

2、据元素的各种属性;3)在查找表中插入一个数据元素;4)从查找表中删去某个数据元素。仅作查询和检索操作的查找表。静态查找表有时在查询之后,还需要将“查询”结果为“不在查找表中”的数据元素插入到查找表中;或者,从查找表中删除其“查询”结果为“在查找表中”的数据元素。动态查找表查找表可分为两类:是数据元素(或记录)中某个数据项的值,用以标识(识别)一个数据元素(或记录)。关键字若此关键字可以识别唯一的一个记录,则称之谓“主关键字”。若此关键字能识别若干记录,则称之谓“次关键字”。根据给定的某个值,在查找表中确定一个其关键字等于给定值的数

3、据元素或(记录)。查找若查找表中存在这样一个记录,则称“查找成功”。查找结果给出整个记录的信息,或指示该记录在查找表中的位置;否则称“查找不成功”。查找结果给出“空记录”或“空指针”。由于查找表中的数据元素之间不存在明显的组织规律,因此不便于查找。为了提高查找的效率,需要在查找表中的元素之间人为地附加某种确定的关系,换句话说,用另外一种结构来表示查找表。(例如学生集合)本章讨论的重点:查找表的各种表示方法及其相应的查找算法如何进行查找?查找的方法取决于查找表的结构。7.1静态查找表抽象数据类型静态查找表的定义ADTStaticSe

4、archTable{数据对象D:D是具有相同特性的数据元素的集合。每个数据元素含有类型相同的关键字,可唯一标识数据元素。数据关系R:数据元素同属一个集合。基本操作P:Create(&ST,n);操作结果:构造一个含n个数据元素的静态查找表ST。Destroy(&ST);初始条件:静态查找表ST存在;操作结果:销毁表ST。7.1静态查找表抽象数据类型静态查找表的定义Search(ST,key);初始条件:静态查找表ST存在,key为和查找表中元素的关键字类型相同的给定值;操作结果:若ST中存在其关键字等于key的数据元素,则函数值为

5、该元素的值或在表中的位置,否则为“空”。Traverse(ST,Visit());初始条件:静态查找表ST存在,Visit是对元素操作的应用函数;操作结果:按某种次序对ST的每个元素调用函数Visit()一次且仅一次,一旦Visit()失败,则操作失败。}ADTStaticSearchTable一线性表查找----顺序查找算法思想:从表的一端开始,用给定值k与表中各个结点的键值逐个比较:查找成功---找出相等键值;查找失败---已到达表的另一端(可在此设置一个监视哨,作为下标越界的条件),即表中所有结点的键值都不等于k。监视哨的作

6、用:作为越界(即已查完)的检测条件,省去在循环中每次均要判定是否越界,从而节省比较的时间。一线性表查找----顺序查找静态查找表顺序查找算法typedefstruct{ ElemType*elem;//数据元素存储空间基址,建表时按实际长度分配,0号单元留空intlength;//表的长度}SSTable;intSearch_Seq(SSTableST,KeyTypekey){//在顺序表ST中顺序查找其关键字等于key的数据元素。若找到,则函数值为该元素在表中的位置,否则为0。ST.elem[0].key=key;//“哨兵”f

7、or(i=ST.length;ST.elem[i].key!=key;--i);//从后往前找returni;//找不到时,i为0}//Search_Seq一线性表查找----顺序查找回顾顺序表的查找算法:intlocation(SqListL,ElemType&e,Status(*compare)(ElemType,ElemType)){ k=1; p=L.elem;while(k<=L.length&&!(*compare)(*p++,e))) k++;if(k<=L.length)returnk; elsereturn0;}

8、//location上述算法中的基本操作是:compare,为了避免“出界”,同时需作k<=L.length的判断,在表长>1000时,将使算法的执行时间几乎增加一倍。为此,改写顺序表的查找算法如上,算法中附设监视哨,以避免循环时每一步都要判别是否

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。