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

数据结构(C语言版):第9章查找.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
查找;教学内容 静态查找表及查找算法 动态查找表及查找算法 哈希表及查找算法 ; 基本概念 ;关键字(key):数据元素中某个数据项的值,用它可以标示 (识别)一个数据元素。; 可以想像的到,如果能有目标地进行查找肯定比在一大堆 事物中瞎摸要有效得多,因此为提高查找效率,一个办法就是 在构造查找表时,在集合中的数据元素之间人为地加上某种确 定的约束关系。本章正是讨论查找表的各种组织方法及其查找 过程的实施。 ;9.1 静态查找表 ; 当静态查找表用不同的方法表示时,实现查找操作的 方法也不同。 ;算法描述: ;查找方法评价: ;找到第 i 个记录 需比较的次数。 ; 查找不成功时,关键字的比较次数总是 n + 1 次。 ; 1、记录的查找概率不相等时如何提高查找效率? ;9.1.2 有序表的查找(折半查找) ;算法描述: ;性能分析: ;平均查找长度ASL(成功时): ;查38;性能分析: ;查找方法比较 ;9.1.3 静态树表的查找 ; 若只考虑查找成功的情况,并为讨论方便起见引入常量 c, 令 wi = cpi (i = 1, 2, …, n),(pi 为结点被查找的概率),则称 wi 为结点的“权”,并且称: 为带权内路径长度之和。 其中: n 为二叉树(判定树)上的结点个数(即:有序表的长 度);hi 为第 i 个结点在二叉树上的层次。 ; 若某个二叉树的 PH 值在所有具有同样权值的二叉树中近似 为最小,则称它为“次优查找树” (Nearly Optimal Search Tree)。 ;构造次优查找树方法: ;例: ;例: ;9.2 动态查找表 ;9.2.1 二叉排序树和平衡二叉树 ;45 ; 若二叉排序树为空,则查找不成功;否则 1) 若给定值等于根结点的关键字,则查找成功; 2) 若给定值小于根结点的关键字,则继续在左子树上进行查找; 3) 若给定值大于根结点的关键字,则继续在右子树上进行查找。 ;算法描述(用二叉链表作二叉排序树的存储结构): BiTree SearchBST(BiTree T, KeyType key) { // 在根指针 T 所指二叉排序树中递归地查找某关键字等于 key // 的数据元素。若查找成功,则返回指向该数据元素结点的指 // 针,否则返回空指针。 if ((!T) || key = T- data.key) return(T); else if ( key T- data.key) return(SearchBST (T- lchild, key)); // 在左子树中继续查找 else return(SearchBST (T- rchild, key)); // 在右子树中继续查找 } // SearchBST;2. 二叉排序树的插入和删除 ;查找算法: Status SearchBST (BiTree T, KeyType key, BiTree f, BiTree p ) { // 在根指针 T 所指二叉排序树中递归地查找其关键字等于 key // 的数据元素,若查找成功,则指针 p 指向该数据元素结点, // 并返回 TRUE,否则指针 p 指向查找路径上访问的最后一个 // 结点并返回 FALSE,指针 f 指向 T 的双亲,其初始调用值 // 为NULL。 if (!T) { p = f; return FALSE; } // 查找不成功 else if ( key = T- data.key ) { p = T; return TRUE; } // 查找成功 else if ( key T- data.key ) SearchBST (T - lchild, key, T, p ); // 在左子树中查找 else SearchBST (T- rchild, key, T, p ); // 在右子树中查找 } // SearchBST ;插入算法: Status Insert BST(BiTree T, ElemTy

文档评论(0)

学习让人进步 + 关注
实名认证
内容提供者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档