数据结构第25讲第10章查找表可扩充散列.pptVIP

数据结构第25讲第10章查找表可扩充散列.ppt

  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文档。上传文档
查看更多
* * * * 可扩充散列结构: 由一个目录表和一组页块构成。 定义页块信息: 页块的局部深度 PgDepth——指明该页块中存放的记录二进码地址的低位部分有多少位是相同的; C5 C3 000 001 010 011 100 101 110 111 A0, B0 A1, B1 C2 PgDepth=2 3. 插入与目录扩充 A0, B0 C2 C3 0 0 1 0 1 1 A1, B1 C5 0 1 PgDepth=3 PgDepth=2 PgDepth=2 PgDepth=3 * C5 C3 000 001 010 011 100 101 110 111 A0, B0 A1, B1 C2 PgDepth=2 A0, B0 C2 C3 0 0 1 0 1 1 A1, B1 C5 0 1 PgDepth=3 PgDepth=2 PgDepth=2 PgDepth=3 定义目录表信息: 目录表深度 DirDepth——为区分各个页块所需的二进制位数。 DirDepth=3 DirDepth 与 PgDepth 的关系 * 关键码插入及页块分裂 1. 在向一个页块插入关键码 key 时, 如果该页块不满, 可以直接将关键码插入; A0, B0 C2 A1, B1 C3 00 01 10 11 DirDepth=2 PgDepth=2 PgDepth=2 PgDepth=2 PgDepth=2 C6 C7 插入 C6 (110110)和 C7(110111) * 如果原来指向它的指针唯一( PgDepth=DirDepth ),则在页块分裂后,必须扩充目录表。 C5 C3 000 001 010 011 100 101 110 111 A0, B0 A1, B1 DirDepth=3 C2 PgDepth=2 PgDepth =3 PgDepth=2 PgDepth=2 PgDepth=3 00 01 10 11 A0, B0 C2 A1, B1 C3 DirDepth=2 PgDepth=2 PgDepth=2 PgDepth=2 PgDepth=2 插入C5(110101), 2. 如果该页块已满,需要分裂页块 * 4. 若原来页块的 PgDepth = d, 分裂后两个兄弟页块的二进制地址都增加一位, 它们的局部深度PgDepth = d+1。除了低阶共享的d位外, 用更高阶的一位来区分两个兄弟页块。 1.让目录表的深度加1,目录项增加一倍; 3.如果目录项的二进制地址有 k 位, 则整个目录 表的深度DirDepth = k, 目录项个数有 2k 个。 目录扩充规则 2.原来地址为的目录项改为地址为0??,目录项指向的页块不变,同时新增加一个目录项1??,目录项的指针与原目录项0??的指针相同。 * C5 C3 000 001 010 011 100 101 110 111 A0, B0 A1, B1 DirDepth=3 C2 PgDepth=2 PgDepth =3 PgDepth=2 PgDepth=2 PgDepth=3 插入C4(110 100) C5 C3 000 001 010 011 100 101 110 111 C4 A1, B1 DirDepth=3 C2 PgDepth=3 PgDepth=3 PgDepth =3 PgDepth=2 PgDepth=2 PgDepth=3 A0, B0 如果原来指向它的指针不唯一( PgDepthDirDepth ) ,则只需要分裂页块,不必扩充目录表。 * C5 C3 000 001 010 011 100 101 110 111 A0, B0 A1, B1 DirDepth=3 C2 PgDepth=2 PgDepth =3 PgDepth=2 PgDepth=2 PgDepth=3 插入C1(100 001) * C5 C3 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010

文档评论(0)

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

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

1亿VIP精品文档

相关文档