数据结构 张华娣师 第九章 查找.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学习提示 教学目的 1、理解查找表的定义、分类和各类的特点。 2、熟练掌握顺序查找,折半查找和索引查找的方法,并能灵活应用; 3、熟练掌握二叉排序树的概念和有关运算的构造方法; 4、熟练掌握哈希表、哈希函数的构造方法、以及处理冲突的方法 。 5、熟练掌握按定义查找方法的等概率情况下查找成功时的平均查找长度,理解哈希表在查找不成功时的平均查找长度的计算方法。 教学重点 顺序查找和折半查找的方法及实现,索引表的定义、索引查找的方法及实现;哈希表的定义,利用除留余数法构造哈希函数的方法,利用线性探查法和链接法处理冲突的方法; 教学难点 二叉排序树的删除操作、平衡二叉树、B树 纲要 9.1 概述 9.2 静态查找表 9.2.1 顺序查找 9.2.2 折半查找 9.2.3索引顺序查找 9.3 动态查找表 9.3.1 二叉排序树 9.3.2 平衡二叉树 9.4 哈希表(哈希表) 9.4.1 哈希表 9.4.2 哈希函数的构造方法 9.4.3 解决冲突的方法 9.1 概述 查找表的常用操作 1、查询某个“特定的”数据元素是否在查找表中。 2、检索某个“特定的”数据元素的各种属性。 3、在查找表中插入一个数据元素。 4、从查找表中刪去某个数据元素。 9.1 概述 9.1 概述 9.1 概述 9.1 概述 基于关键字的查找 根据给定的某个值x,在含有n个数据元素的查找表中找出关键字等于给定值x的记录或数据元素,若找到,则查找成功,输出该元素在表中的位置或该元素信息,否则查找失败,输出查找失败的信息。 9.1 概述 但在实际应用时,查找条件是多方面的(但查找结果可能不惟一): 按属性查找 精确匹配查找:查找关键字值(属性值)与特定值匹配的记录。 模糊查找 范围查找:检索关键字值在某个范围内的所有记录 组合查找 以下均使用关键字查找,当数据对象只有一个数据项时(如整数对象),其关键字即为该数据对象的值 9.1 概述 9.1 概述 9.1 概述 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 9.2 静态查找表 算法思想 将查找表分成若干个子表,并对子表建立索引表 每个索引表包含两个域: 关键字项 存放对应子表中的最大关键字 指针项 指该子表的第一个记录在表中位置 查找过程 将表分成几块,块内可有序也可无序,但块间有序; (1)先确定待查记录所在块 (2)再在块内顺序查找待查元素 适用条件:分块有序表 一般适用于数据量比较大的查找处理 9.2 静态查找表 分块查找方法评价 9.3 动态查找表 静态查找表一旦生成后,所含元素是固定不变的,而动态查找表则可经插入、删除运算而不断改变。 特点:表结构本身是在查找过程中动态生成的,即对于给定值x,若表中存在其关键字等于x的记录,则查找成功返回,否则插入关键字等于x的记录。 9.3.1 二叉排序树 一、定义 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: ? 每个结点都有一个作为查找依据的关键字(key),所有结点的关键字互不相同。 9.3.1 二叉排序树 9.3.1 二叉排序树 9.3.1 二叉排序树 9.3.1 二叉排序树 查找成功时检测指针停留在树中某个结点。 查找不成功时检测指针停留在某个外结点(失败结点)。 9.3.1 二叉排序树 9.3.1 二叉排序树 二叉排序树的查找算法 BiTree SearchBST(BiTree T, KeyType key) { //二叉排序树用二叉链表存储。在根指针T所指二叉排序树中递归地查找 if(T||( key=T-data. key) )return(T); else if ( keyT-data. key) return(SearchBST(T-1child, key)); else return(SearchBST(T-rchild, key)) }//SearchBST 9.3.1 二叉排序树 9.3.1 二叉排序树 9.3.1 二叉排序树 9.3.1 二叉排序树 9.3.1 二叉排序树 查找成功: 树中已有这个元素,不再插入。 查找不成功: 树中原来没有关键字等于给定值的结点,把 新元素加到查找 操作停止的地方。 9.3.1 二叉排序树

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档