第七章查找课程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 查找;查找有关的概念与术语 ;数据元素类型说明 ;查找方法评价;静态查找表结构 ;静态查找表的顺序存储结构;静态查找表的链式存储结构;静态查找——顺序查找;以顺序存储为例,数据元素从下标为1的数组单元开始存放,0号单元留空。;顺序查找方法的ASL;静态查找——折半查找 ;折半查找的算法;low;例 ;1 2 3 4 5 6 7 8 9 10 11;折半查找算法;静态查找—— 有序表的插值查找思想;静态查找—— 有序表的斐波那契查找;有序表的斐波那契查找算法;静态查找—— 分块查找(索引顺序查找) ;分块查找算法 ;1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18;分块查找;ASL;动态查找表 ——二叉排序树 ;二叉排序树的存储结构;二叉排序树的查找算法;二叉排序树的生成;例 {10, 18, 3, 8, 12, 2, 7, 3};二叉排序树的删除;删除二叉排序树中的p结点的讨论;S;中序遍历:P PR S Q;F;例;平衡二叉树的引入;平衡二叉树(AVL树) 的定义;;非平衡二叉树的调整 ;一. 左单旋转( LL型 的处理) 二. 右单旋转( RR型的处理) 三. 先左后右双向旋转( LR型的处理) 四. 先右后左双向旋转( RL型的处理) ;;(2)LR型的处理(左右型) 在C的左孩子A上扦入一个右孩子B,使的C的平衡因子由1变成了2,成为不平衡的二叉排序树。这是的平衡处理为:将B变到A与C 之间,使之成为LL型,然后按第(1)种情形LL型处理。 ;(3)RR型的处理(右右型) 在A的右孩子B上扦入一个右孩子C,使A的平衡因子由-1变成-2,成为不平衡的二叉排序树。这时的平衡处理为:将A逆时针旋转,成为B的左子树,而原来B的左子树则变成A的右子树,待扦入结点C成为B的右子树。 ;(4)RL型的处理(右左型) 在A的右孩子C上扦入一个左孩子B,使A的平衡因子由-1变成-2,成为不平衡的二叉排序树。这时的平衡处理为:将B变到A与C之间,使之成为RR型,然后按第(3) 种情形RR型处理。 ;给定一个关键字序列4,5,7,2 ,1,3,6,试生成一棵平衡二叉树。 分析:平衡二叉树实际上也是一棵二叉排序树,故可以按建立二叉排序树的思想建立,在建立的过程中,若遇到不平衡,则进行相应平衡处理,最后就可以建成一棵平衡二叉树。 ;平衡二叉树的生成举例 ;平衡二叉树的生成举例 ;平衡二叉树的生成举例 ;平衡二叉树的生成举例 ;平衡二叉树的插入算法;平衡二叉树的插入算法;平衡二叉树的插入算法;平衡二叉树的插入算法;平衡二叉树的插入算法;平衡二叉树的查找及性能分析 ;对给定的关键字序列4,5,7,2,1,3,6,试用二叉排序树和平衡二叉树两种方法查找,给出查找6的次数及成功的平均查找长度。;从上图的二叉排序树可知,查找6需4次,平均查找长度ASL=(1+2+2+3+3+3+4)/7=18/7≈2.57。 从上图的平衡二叉树可知,查找6需2次,平均查找长度 ASL=(1+2+2+3+3+3+3)=17/7≈2.43。 ;动态查找表 —— B-树 ;B-树的定义 ;B-树的定义 ;B-树的定义 ;typedef struct BTNode { int keynum; // 结点中关键字个数,结点大小 struct BTNode *parent; // 指向双亲结点的指针 KeyType key[m+1]; // 关键字(0号单元不用) struct BTNode *ptr[m+1]; // 子树指针向量 Record *recptr[m+1]; // 记录指针向量 } BTNode, *BTree; // B树结点和B树的类型;B-树的查找算法;B-树的插入;例如:下列为 3 阶B-树;分两种情况: (1)删除最底层结点中关键字 (2)删除为非底层结点中关键字 若所删除关键字非底层结点中的Ki,则可以指针Ai所指子树中的最小关键字X替代Ki,然后,再删除关键字X,直到这个X在最底层结点上,即转为(1)的情形。 ;B-树的删除-简单删除;B-树的删除-结点联合调整;B-树的删除-结点联合调整;B-树的删除-结点联合调整;B-树的删除-结点联合调整;B-树的删除-非叶结点删除;B-树的删除-非叶结点删除;B-树的删除-非叶结点删除;B-树的删除-非叶结点删除;B+树 ;哈希表查找引

文档评论(0)

知识宝库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档