




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机与信息安全学院软件工程桂林电子科技大学1计算机与信息安全学院软件工程数据结构与算法第5章 高级字典结构桂林电子科技大学计算机与信息安全学院软件工程桂林电子科技大学2内容回顾计算机与信息安全学院软件工程桂林电子科技大学3内容概要字符树2索引文件5最佳、平衡二叉排序树4二叉排序树3 字典与索引概念1计算机与信息安全学院软件工程桂林电子科技大学4索引索引:关键码到地址的转换关系字典的索引:目录表引入索引就可以将包含大量属性信息并且不等长元素的字典的处理,转换成对仅仅包含关键码到地址对应关系(简单类型并且等长的元素)的索引结构的处理在检索一个元素时,只要在目录表中找到对应的关键码,马上可以得到对
2、应结点的存储位置在排序过程中,只要完成目录表中元素(又称索引项)的排序,而不需要移动字典本身的任何结点计算机与信息安全学院软件工程桂林电子科技大学5索引索引是索引项的集合一个索引项是由一个结点的关键码和该结点的存储位置组成的关联索引的实质还是字典,而且是元素类型相同的等长结点的字典。所有关于字典的讨论都适合于索引;所有字典的实现也可以用来组织索引密集索引:每个索引项只对应字典中一个元素稀疏索引:每个索引项对应字典中一组元素计算机与信息安全学院软件工程桂林电子科技大学6内容概要字符树2索引文件5最佳、平衡二叉排序树4二叉排序树3 字典与索引概念1计算机与信息安全学院软件工程桂林电子科技大学7字符
3、树若字典的所有关键码都是字符串, 则可以构造字符树( (林) )来表示字符树中的每个结点表示关键码中的一个字符从根出发的每条路径上,所对应的字符连接起来得到的字符串是一个关键码一个字典的所有关键码,可用一个字符树(林)中从根到其它结点路径对应字符串的集合表示在每个构成字典关键码的结点上增加一个指向对应元素的指针,就成为相应字典的一个字符树表示计算机与信息安全学院软件工程桂林电子科技大学8字符树示例某字典的关键码集合:K= xal, wan, wil, zol, yo, xul, yum, wen, wim, zi, yon, xem, wul, zom关键码由2至3个字符组成:第一个字符为w,
4、 x, y, z, 第二个字符可为a, e, i, o, u,第三个字符可为l, m, n。xauellm*waiuenlnml*zoilm*youmn*计算机与信息安全学院软件工程桂林电子科技大学9字符树把字符树(林)转换为对应的二叉树,并用llink-llink-rlinkrlink法进行存储, ,通常称作双链树将字符树(林)的字符信息隐藏在边里,用代表字符的指针指向不同子字符树,整个字符树(林)变成一棵以指针数组为结点的树。多链表示常被称为trietrie结构(检索结构,ReRetrietrievalval)计算机与信息安全学院软件工程桂林电子科技大学10内容概要字符树2索引文件5最佳、
5、平衡二叉排序树4二叉排序树3 字典与索引概念1计算机与信息安全学院软件工程桂林电子科技大学11二叉排序树二叉排序树(Binary Sort Tree,也称二叉搜索树)以关键码为结点的二叉树,满足如下条件:若左子树非空,则左子树中所有结点的关键码都小于根结点的关键码若右子树非空,则右子树中所有结点的关键码都大于根结点的关键码左右子树(若存在)也是二叉排序树对二叉排序树进行对称序周游,得到一个按关键码排序的“递增”序列计算机与信息安全学院软件工程桂林电子科技大学12二叉排序树示例18107336899276925413251计算机与信息安全学院软件工程桂林电子科技大学13二叉排序树:存储结构/采用
6、llink-rlink法表示二叉排序树struct BinSearchNode;typedef struct BinSearchNode * PBinSearchNode;struct BinSearchNode KeyType key; PBinSearchNode llink, rlink;typedef struct BinSearchNode * BinSearchTree;typedef BinSearchTree * PBinSearchTree;计算机与信息安全学院软件工程桂林电子科技大学14二叉排序树:检索算法int search(PBinSearchTree ptree, K
7、eyType key, PBinSearchNode *position ) PBinSearchNode p, q; p=*ptree; q=p; while ( p!=NULL ) q=p; if ( p-key=key ) *position=p; return 1 ; else if ( p-key key) p=p-llink; else p=p-rlink; *position=q; return 0;/*算法执行的时间代价最坏为O(h), h为二叉排序树的高度*/计算机与信息安全学院软件工程桂林电子科技大学15二叉树的插入与删除18107336899276925413251(1)
8、插入结点:56(2)删除结点:73计算机与信息安全学院软件工程桂林电子科技大学16内容概要字符树2索引文件5最佳、平衡二叉排序树4二叉排序树3 字典与索引概念1计算机与信息安全学院软件工程桂林电子科技大学17二叉排序树的不同形态181073568991810735689918107356899计算机与信息安全学院软件工程桂林电子科技大学18最佳二叉排序树对同一关键码集合, 不同的元素插入顺序, 可能构造n!个不同(高度和形态)的二叉排序树哪种二叉排序树的检索效率最高?即具有最小平均比较次数?计算机与信息安全学院软件工程桂林电子科技大学19最佳二叉排序树对扩充二叉排序树,检索一个关键码的平均比较
9、次数为:li:第i个内部结点的层数;li是第i个外部结点的层数pi是检索第i个内部结点关键码的频数; qi是检索第i个外部结点关键码的频数, qi和pi也叫结点的权pi /w是检索第i个内部结点关键码的概率, qi /w是被检索的关键码属于第i个外部结点关键码集合的概率计算机与信息安全学院软件工程桂林电子科技大学20最佳二叉排序树最佳二叉排序树: E(n)最小的二叉排序树根结点的关键码确定, 左右子树的关键码集合也惟一确定左右子树也是最佳二叉排序树如何构造最佳二叉排序树?等概率检索情况下的最佳二叉排序树不等概率检索情况下的最佳二叉排序树计算机与信息安全学院软件工程桂林电子科技大学21最佳二叉排
10、序树K=5,10,18,25,27,41,51,73,99,构造等概率检索情况下的最佳二叉排序树27105154173251899计算机与信息安全学院软件工程桂林电子科技大学22最佳二叉排序树最佳二叉排序树:平均比较次数最小由于需要预先获知元素的检索概率,才能构造最佳二叉排序树,因此其比较适合静态字典的表示, 不适合动态字典的表示不能很好支持动态变化:通常动态变化需要导致重新构造最佳二叉排序树结点权值不同时构造的时间复杂度较高构造一棵容易调整、“较佳”检索效率的二叉树?计算机与信息安全学院软件工程桂林电子科技大学23平衡二叉排序树适合动态字典表示的二叉树不追求最佳,退而求其次,寻求近似最佳解保
11、证在动态操作中较易通过局部调整进行维护;提供对各种操作的最坏性能保证平衡二叉排序树( AVL树):或是空树,或其左右子树都是平衡二叉排序树,而且左右子树的深度之差的绝对值不超过1后续讨论均假定所有字典元素的检索概率相等计算机与信息安全学院软件工程桂林电子科技大学24平衡二叉排序树平衡因子BF(Balance Factor) 结点的右子树与左子树的高度之差称为该结点的平衡因子可能取值:-1, 0, 1n个结点平衡二叉排序树的高度小于:c *log 2n (c为常量)计算机与信息安全学院软件工程桂林电子科技大学25平衡二叉排序树:示例-1-1-1101-1-20-10平衡二叉树非平衡二叉树00计算
12、机与信息安全学院软件工程桂林电子科技大学26平衡二叉排序树核心问题:执行插入、删除操作后,如何保持二叉树的平衡性?(课后作业)计算机与信息安全学院软件工程桂林电子科技大学27内容概要字符树2索引文件5最佳、平衡二叉排序树4二叉排序树3 字典与索引概念1计算机与信息安全学院软件工程桂林电子科技大学28索引文件温习字典结构问题:字典中元素如果长度不等,如何存储?在字典的顺序表示中,元素的值需要空间的长度不等,可以另外建立一个字典的索引 - 通常称为目录表计算机与信息安全学院软件工程桂林电子科技大学29索引文件:目录表key0key1key2key3key4key5key6key701234567目
13、录表字 典计算机与信息安全学院软件工程桂林电子科技大学30索引文件索引是索引项的集合,一个索引项是由一个结点的关键码和该结点的存储位置组成的关联索引的实质还是字典,而且是元素类型相同的等长结点的字典所有关于字典的讨论都适合于索引;所有字典的实现也可以用来组织索引计算机与信息安全学院软件工程桂林电子科技大学31索引文件引入索引可将对包含大量属性信息并且不等长元素的字典的处理,转换成对仅仅包含关键码到地址对应关系(简单类型并且等长的元素)的索引结构的处理在检索一个元素时,只要在目录表中找到对应的关键码,马上可以得到对应结点的存储位置在排序过程中,只要完成目录表中元素(又称索引项)的排序,而不需要移
14、动字典本身的任何结点计算机与信息安全学院软件工程桂林电子科技大学32索引文件文件是记录的集合文件中的记录可以按某种顺序(例如按放入文件的先后或者按关键码的大小)定义次序,并且在外存储器上按同样的次序存放的,这种文件叫做顺序文件对于文件中的记录也可以建立索引。对于大型的文件,其索引往往也是很大的,需要存放在外存上,即形成索引文件索引和主文件(存放实际记录的文件)总称为索引文件。对于索引文件,其主文件如果是一个顺序文件,又可以叫作索引顺序文件索引的索引:即给庞大的(通常是密集的)索引,建立另外一个辅助(通常是稀疏)的索引结构,以达到加快查找字典中特定结点的目的计算机与信息安全学院软件工程桂林电子科
15、技大学33索引文件:多分树多级索引结构:三分树(3, ) (32, )(60, )(3, ) (10, )(23, )(32, ) (41, )(49, )(60, ) (81, )3 510 1123 3141 4560 708132 3849 52计算机与信息安全学院软件工程桂林电子科技大学34索引文件:多分树多分树的每个结点分配一个页块,结点上的信息是许多二元组(,)的序列,它们在结点内按关键码的值排序第个二元组中的是本结点的第个子结点(页块)的地址,是这个子结点上的最小(或者最大)关键码多分树的叶结点就是主文件的最底层索引主文件的每个页块可以看成是多分树的外部结点计算机与信息安全学院软
16、件工程桂林电子科技大学35索引文件:多分树多分树主要实用于静态的索引顺序文件对于经常需要插入和删除的动态索引顺序文件,需要采用动态索引结构计算机与信息安全学院软件工程桂林电子科技大学36索引文件:B树计算机与信息安全学院软件工程桂林电子科技大学37索引文件:6阶B树37545 112 236392 490 560 631 670040008110050212142135279240237388381378471435400396393660652633629626567553502492678673671计算机与信息安全学院软件工程桂林电子科技大学38索引文件:B+树计算机与信息安全学院软件工程桂林电子科技大学39索引文件:3阶B+树60 9920 39 6085 9910 2092 9965 79 8546 51 6027 36 39计算机与信息安全学院软件工程桂林电子科技大学40B树与B+树异同B+树有n棵子树的结点中含有n个关键码;而B树有n棵子树的结点中含有n-1个关键码B+树所有的叶子结点中包含了完整的索引的信息,而B树中非叶结点的关键码与叶结点的关键码均不重复,它们共同构成全部索引信息B+树所有的非叶结点可以看成是高层索引,结点中仅含有其子树
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 亚洲货物运输合同
- 油轮货物运输合同协议
- 2025年度西部数码对象存储服务合同细则
- 家居采购合同样本
- 糖尿病患者饮食指导
- 2《做负责任的人》表格式公开课一等奖创新教学设计-6
- 全国人教版初中信息技术七年级上册第二单元第7课三、应用设计模板教学设计
- 英语三年级下册Lesson 20 Hamburgers and Hot Dogs.教案
- 人教版小学二年级上册数学 第7单元 第2课时 认识时间(2) 教案
- 2025村新教学楼照明系统改造合同协议书
- 2025年高考英语二轮复习热点题型专项训练:完形填空夹叙夹议文(含答案)
- 安保人员安全培训课件
- 2025年中国光伏电池市场发展现状调研及投资趋势前景分析报告
- 2025年元宇宙+游戏行业新兴热点、发展方向、市场空间调研报告
- 问题等于机会的培训
- 人教版 七年级英语下册 第二学期 期中综合测试卷(2025年春)
- 《疥疮的防治及治疗》课件
- 建筑施工大型机械设备安全使用与管理培训
- 技术转让合同备忘录协议备忘录(2024年版)
- 注册会计师财务成本管理章节练习题三
- 第十一单元课题1化学与人体健康-2024-2025学年九年级化学人教版(2024)下册
评论
0/150
提交评论