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

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

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

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

例1:求散列表大小并设计散列函数*条件:设有一个含200个记录的散列表,要求用平方探查法解决冲突,且要求按关键码查询时,找到一个新记录插入位置的平均探查次数不超过1.5。问题:哈希表至少应该多大?并设计哈希函数。分析:对平方探测法,查找不成功的平均搜索长度为Un=1/(1-α),解答:根据要求n=200,且:Un=1/(1-α)?1.5??1/3 ?=n/m=200/mm?600一、哈希表是什么?*哈希函数的构造方法01处理冲突的方法02哈希表的查找03哈希表04可扩充散列05五.可扩充散列*问题提出:1。再散列问题:对于静态散列表,无论使开发定址法还是链址法,都需要静态分配存储空间。如果表的记录太满,则查找和插入的时间将很长,甚至插入操作可能失败。由于静态散列表的长度不能够增加(?),解决的办法只能是另外建立一个新的散列表(原来的两倍),并扫描原来表中的每一个记录,并将其插入到新的散列表中(复制记录)。《数据结构—用面向对象方法与C++语言描述》清华大学出版社殷人昆2。哈希表太长,多次访问外存由于哈希表中的记录数太多,不能够一次装载到内存。只能根据内存缓存区的大小分段载入内存。对于象平方探测这样的开放定址处理冲突方法,进行一次哈希查找就需要进行多次访问外存的操作。p段1段2段3可扩充散列是一种动态散列方法,它对传统的散列技术进行了扩充。它采用树型结构实现哈希表的存储结构,使之能够动态(再散列不需要复制)地适应对文件存储容量的需求,并能保持高效(访问外存次数少)的搜索效率。1.二叉Trie树2.将二叉Trie树转换为目录表3.插入与目录扩充4.删除与目录收缩01(A)345(E)9(I)……268(H)4(D)19(S)22(V)018(R)7(G)1905(E)THADHASHAVEHEHERHEREHIGHHIS?????????表示关键字集合{HAD,HAS,HAVE,HE,HER,HERE,HIGH,HIS}Trie树1。多叉2。按字符划分3。查找需要比较1.二叉Trie树*根据关键字二进制码的最低2位进行划分,可以把这些关键字分成4类。假设把它们4个页块的文件中,每页最多可以容纳2个关键码。这样就可以利用各关键码的最低2位(00,01,10,11)来决定它们的存储页块。001011A0,B0C2C3A1,B1标识符A0A1B0B1C2C3C2C3二进位100100101101110110110110表示000001000001010011010011设关键字序列{A0,A1,B0,B1,C2,C3}。若每一个关键码由2个字符组成,而每一个字符用3个二进制位表示。则有:页块(桶)01根据各关键码的二进制位表示,从最低位到最高位进行划分,各页块的索引构成一个二叉树结构。二叉Trie树:02首先,在根结点处按各关键码的最低位是1还是0,划分为两组。对于每一组再按次低位是1还是0继续分组,如此分下去,直到每组剩下不多于2个关键码为止。二叉Trie树构造方法:03在二叉Trie树中有两类结点:分支结点和叶结点。分支结点按其相关二进位是1还是0,分为两个分支;叶结点包含指向关键码存放页块的指针。二叉Trie树组成:1.二叉Trie树*根据关键字二进制码的最低2位进行划分,可以把这些关键字分成4类。假设把它们4个页块的文件中,每页最多可以容纳2个关键码。这样就可以

文档评论(0)

136****0775 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档