数据结构(c语言版)第8章查找(5.26)详解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(5) 删除27时,首先将剩余信息(在此为空指针)与父结点中的18并入左兄弟,并释放空结点,结果如图8.10(f)所示。再将父结点中的剩余信息与祖父结点中的35并入47左端,释放空结点后的结果如图8.10(g)所示。至此,祖父结点仍需要合并,但由于待合并结点的父指针为NULL,故停止合并,直接将根指针bt置为指针p2的值,释放空结点后的结果如图8.10(h)所示。 图8.10 在B-树最下层结点中删除关键字 图8.11 在B-树非最下层删除关键字 2) 在非最下层结点中删除一个关键字 四.B+树 B+树是应文件系统所需而出的一种B-树的变型。一棵m阶的B+树和一棵m阶的B-树的差异在于: ① 有n棵子树的结点中含有n个关键字。 ② 所有的叶子结点中包含了全部关键字信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序连接。 ③ 所有的非终端结点可以看成是索引部分,结点中仅含有其子树(根结点)中的最大(或最小)关键字。 B+树可以进行两种查找运算。 注:若从根开始查找时,若非终端结点等于该关键字,并不停止,继续到叶子。 已知的几种查找方法: 顺序查找 O(N) 二分查找(静态查找) O (log 2 N) 二叉搜索树 O(h) 平衡二叉树 O (log 2 N) 还有其他方法吗? 8.3 哈希表 [例] 在登录QQ的时候,QQ服务器是如何核对你的身份?面对庞大的用户群,如何快速找到用户信息? 【分析】看看是否可以用二分法查找。 ? 十亿(109 ≈ 230)有效用户,用二分查找30次。 ? 十亿(109 ≈ 230) × 1K ≈ 1024G,1T连续空间。 ? 按有效QQ号大小有序存储:在连续存储空间中,插入和删除一个新QQ号码将需要移动大量数据。 (不合适) 【问题】如何快速搜索到需要的关键词?如果关键词不方便比较怎么办? 查找的本质: 已知对象找位置。 有序安排对象:全序、半序 直接“算出”对象位置:散列 ? 散列查找法的两项基本工作: 计算位置:构造散列函数确定关键词存储位置; 解决冲突:应用某种策略解决多个关键词位置相同的问题 ? 时间复杂度几乎是常量:O(1),即查找时间与问题规模无关! 要删除的结点有左、右两棵子树: 用另一结点替代被删除结点:右子树的最小元素 或者 左子树的最大元素。 3. 二叉排序树的删除 45 24 12 53 28 90 例:要删除53 60 80 70 45 24 12 53 28 90 60 80 70 2、取左子树中的最大元素替代 1、取右子树中的最小元素替代 90 80 70 BiTree Delete ( TElemType X, BiTree BST ) { BiTree p; if( !BST ) printf(要删除的元素未找到); else if( X BST-data ) BST-lchild = Delete( X, BST- lchild); /* 左子树递归删除 */ else if( X BST-data ) BST-rchild = Delete( X, BST- rchild); /* 右子树递归删除 */ else /*找到要删除的结点 */ if( BST- lchild BST- rchild ) {/*被删除结点有左右两个子结点 */ p = FindMin( BST- rchild ); /*在右子树中找最小的元素填充删除结点*/ BST-data = p-data; BST- rchild = Delete( BST-data, BST- rchild); /*在删除结点的右子树中删除最小元素*/ } else { /*被删除结点有一个或无子结点*/ p = BST; if( !BST- lchild ) /* 有右孩子或无子结点*/ BST = BST- rchild; else if( !BST- rchild ) /*有左孩子或无子结点*/ BST = BS

文档评论(0)

1192212 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档