第10-12章习题课分析优秀PPT.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第10-12章习题课分析优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第10-12章习题课分析优秀PPT.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第10-12章章习题课习题课宋国杰宋国杰北京高校信息科学技术学院北京高校信息科学技术学院gjsongpku.edu 北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法第第10章章检索检索第第11章章索引索引第第12章章高级数据结构高级数据结构2第1题请设计一个字典,支持下列的操作:INSERTx:插入一个字符串xFINDx:返回一个bool值,表示字符串是否存在请设计一个这样的字典,并且介绍其优点和缺点。留意:字符串本身可能比较长;字符串的个数在105个左右。3答案考查学问点:开散列考查学
2、问点:开散列方案:考虑到字符串很多的因素,接受拉链式方案:考虑到字符串很多的因素,接受拉链式Hash表解决,用一个表解决,用一个Hash函数进行寻址;函数进行寻址;考虑到字符串很长的因素,在插入的时候用另一个考虑到字符串很长的因素,在插入的时候用另一个Hash函数来给每一个字符串一个函数来给每一个字符串一个ID,相同的字符串,相同的字符串ID确定相同,不同的字符串也有确定概率确定相同,不同的字符串也有确定概率ID相同,相同,在查找时,仅需考虑在查找时,仅需考虑ID相同的串来确定是否串相同的串来确定是否串X存在,存在,避开了大范围的查找,和大量长字符串匹配。避开了大范围的查找,和大量长字符串匹配
3、。4第2题现在有一个文本编辑器,具有如下的操作:现在有一个文本编辑器,具有如下的操作:MOVEk:将光标移动到第:将光标移动到第k个字符之前,假个字符之前,假如如k=0,那么移动到文档开头,那么移动到文档开头PRINTn:输出光标之后的:输出光标之后的n个字符个字符PREV:光标前移一位:光标前移一位NEXT:光标后移一位:光标后移一位5(1)请基于线性数据结构设计一套合理的算法,来实)请基于线性数据结构设计一套合理的算法,来实现这些操作,并且分析每个操作的性能。假定:文本现这些操作,并且分析每个操作的性能。假定:文本最大的长度为最大的长度为Lh2:15那么,为了满足红黑树性质,我们令那么,为
4、了满足红黑树性质,我们令T2的根结点为的根结点为多多(h1-h2+1)黑结点。我们可以利用红黑树的删除算黑结点。我们可以利用红黑树的删除算法中对双黑结点处理的方法同样处理法中对双黑结点处理的方法同样处理T2的根结点,的根结点,即令其从即令其从(h1-h2+1)黑结点,变为黑结点,变为(h1-h2)黑结点黑结点直直至为单黑结点,那么就变成了一棵正常的红黑树。至为单黑结点,那么就变成了一棵正常的红黑树。16双黑结点的调整双黑结点的调整假设假设X是左子结点(若是左子结点(若X为右子结点,处理方法类似,不重述)为右子结点,处理方法类似,不重述)状况状况1:双黑结点的兄弟:双黑结点的兄弟C是红色,执行旋
5、转操作(黑红)!是红色,执行旋转操作(黑红)!推出:推出:B结点也确定是黑色,结点也确定是黑色,和和也是黑色也是黑色旋转:兄弟节点为根变黑,父节点变红旋转:兄弟节点为根变黑,父节点变红X结点仍是结点仍是“双黑双黑”结点,转化为状况结点,转化为状况2,317北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法BCXXBC双黑结点状况状况2:兄弟是黑色:兄弟是黑色,且有两个黑子结点(黑且有两个黑子结点(黑黑黑)黑黑)执行换色操作,把执行换色操作,把C着红色,着红色,B着黑色着黑色假如假如B原为红色,
6、则算法结束原为红色,则算法结束否则,对否则,对B接着作接着作“双黑双黑”调整(为什么?)调整(为什么?)BXEDCBCEDX18北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法有可能接着双黑处理双黑结点的调整双黑结点的调整状况状况3:兄弟:兄弟C是黑色,且子是黑色,且子结结点有点有红红色色(黑黑黑黑红红)(a)旋旋转转重构:侄子重构:侄子红结红结点八字外撇点八字外撇将兄弟将兄弟结结点点C提上去,提上去,继继承原父承原父结结点的点的颜颜色色然后把然后把B着着为为黑色,黑色,D着着为为黑色,其他
7、黑色,其他颜颜色不色不变变即可即可19BDXCDXBC单旋转调整单旋转调整北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法(b)旋转重构:旋转重构:侄子红结点同边顺侄子红结点同边顺将将C结结点旋点旋转为转为D结结点的父点的父结结点,点,C继继承原子根承原子根B的的颜颜色,色,B着着为为黑色黑色BXEDCDBCXE20北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法11.6.3插入算法插入算
8、法先先调调用用BST的插入算法,将待插的插入算法,将待插记录记录定位定位新记录X着色为红色若父若父结结点是黑色,点是黑色,则则算法算法结结束束否否则则,双红调整6 6386 6384XAAX插入插入4 421北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法双红调整双红调整1:红黑旋转红黑旋转状况状况1:新增:新增结结点点X的叔父的叔父结结点是黑色,或者点是黑色,或者NIL调调整后:祖整后:祖节节点点变为变为黑,父、叔黑,父、叔节节点点变为红变为红!每个每个结结点的点的阶阶都保持原都保持原值值
9、,调调整完成整完成保持保持树树的的稳稳定性!定性!X以祖结点为轴旋以祖结点为轴旋转父结点转父结点AXBB BA AC CC C22北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法4种形式的结构调整种形式的结构调整原原则则:保持:保持BST的中序性的中序性质质2 2466 624264 423提升操作旋转操作北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法双红调整双红调整2:红红换色红红换色
10、状况状况2:新增:新增结结点点X的叔父的叔父结结点也是点也是红红色色X父祖换色父祖换色叔父变黑叔父变黑AXBB BA AC CC24对B接着红红检查北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院北京高校信息科学技术学院数据结构与算法数据结构与算法数据结构与算法数据结构与算法假如B是根节点,则只叔父节点变色,根节点不变!25第第10章章检索检索第第11章章索引索引第第12章章高级数据结构高级数据结构26供应广义表的下列操作供应广义表的下列操作make_GList(a,b,c.);将随意多个广义表连接成一个将随意多个广义表连接成一个新的广义表新的广义表head(gList
11、);取广义表头取广义表头tail(gList);取广义表尾;取广义表尾;要求设计一个算法,将广义表置逆,不能运用其他数要求设计一个算法,将广义表置逆,不能运用其他数据结构。比如,对于广义表据结构。比如,对于广义表(a,(a,b,c),(b,(d),置逆之后的结果为:置逆之后的结果为:(d),b),(c,b,a),a);27解:干脆用递归即可。解:干脆用递归即可。GListreverse(gList)Returnmake_Glist(reverse(tail(gList),reverse(head(gList)282.假定经过分词后的网页已经形成了倒排索引,运用假定经过分词后的网页已经形成了倒排
12、索引,运用trie树作为词典,叶子结点会有指向倒排表的指针,树作为词典,叶子结点会有指向倒排表的指针,倒排表是依据网页文档倒排表是依据网页文档id(连续的整数值)排好序的。(连续的整数值)排好序的。现在须要系统支持简洁的布尔查询。请写出以下算现在须要系统支持简洁的布尔查询。请写出以下算法的代码或伪代码,并分析困难度法的代码或伪代码,并分析困难度29I.Keyword1andkeyword2II.Keyword2andnotkeyword2III.假如须要支持相邻查询,例如假如须要支持相邻查询,例如keywordandkeword2neardistance,distance代表词与词代表词与词之
13、间的距离,须要怎样更改倒排索引表,支之间的距离,须要怎样更改倒排索引表,支持这一需求?持这一需求?30答案答案1、用、用trie树可以在树可以在O(length(string)的时间内找到单的时间内找到单词所对应的倒排表的位置。词所对应的倒排表的位置。依据这一点,设计如下代码。依据这一点,设计如下代码。设设A1.AN为第一个单词的文档,为第一个单词的文档,B1.BM为其次个为其次个单词的文档单词的文档313233343.AVL树和红黑树的高度树和红黑树的高度A.高度为高度为h的的AVL树上的最少结点个数是多少?最多树上的最少结点个数是多少?最多结点个数是多少?结点个数是多少?B.高度为高度为h
14、的红黑树上的最少结点个数是多少?最多的红黑树上的最少结点个数是多少?最多结点个数是多少?结点个数是多少?353637BBh=5,为奇数时,树的阶为,为奇数时,树的阶为k=inth/2k=2k=138h=6,为偶数时,树的阶为,为偶数时,树的阶为k=inth/2k=3Bk=2k=139Bh=6,为偶数时,树的阶为,为偶数时,树的阶为k=inth/2k=3k=2B4.KD树和树和PR四分树都可以支持区域四分树都可以支持区域查找。请问两者有什么优劣势?查找。请问两者有什么优劣势?401、k-d树树 k-d树树是一种用于多是一种用于多维检维检索的索的树结树结构,它的每构,它的每一一层层都依据特定关都依
15、据特定关键码键码将将对对象空象空间间分解分解为为两个两个顶层结顶层结点按一个点按一个维维划分划分其次其次层结层结点依据另一点依据另一维进维进行划分行划分以此以此类类推在各个推在各个维维之之间间反复反复进进行划分行划分最最终终当一个当一个结结点中的点数少于点中的点数少于给给点的最大点数点的最大点数时时,划分,划分结结束束识别器(discriminator)在每一层用来进行决策的关键码称为识别器在每一层用来进行决策的关键码称为识别器对于对于k k维关键码,在第维关键码,在第i i层把识别器定义为层把识别器定义为i i mod kmod k例如,对一个三维的关键码做检索,例如,对一个三维的关键码做检
16、索,3 3个关键个关键码(码(x x,y y,z z)标号分别为)标号分别为0 0、1 1、2 2第一层是第一层是0 mod 3=00 mod 3=0,所以运用关键码,所以运用关键码x x,其次层是其次层是1 mod 3=11 mod 3=1,所以运用关键码,所以运用关键码yy结点的安排结点的安排在结点安排的时候首先比较该层的识别器在结点安排的时候首先比较该层的识别器假如关键码小于识别器的值就放到左子树中假如关键码小于识别器的值就放到左子树中否则放到右子树否则放到右子树然后在下一层运用新的识别器来推断每个结点然后在下一层运用新的识别器来推断每个结点的归属的归属识别器的值应当尽量使得被划分的结点
17、大约一识别器的值应当尽量使得被划分的结点大约一半落在左子树,另一半落在右子树半落在左子树,另一半落在右子树K-DK-D树示例树示例K-D树的空间分解树的空间分解上图是一个二维的上图是一个二维的k-d树,取值范围为树,取值范围为100100之内之内k-dk-d树的每个内部结点树的每个内部结点把当前的空间划分为两块,交替地对两个维进行划分把当前的空间划分为两块,交替地对两个维进行划分根结点把空间划分成两部分根结点把空间划分成两部分其子结点进一步把空间划分成更小的部分其子结点进一步把空间划分成更小的部分子结点的划分线不会穿过根结点的划分线子结点的划分线不会穿过根结点的划分线 k-d树中的这些结点最终
18、把空间分解为矩形树中的这些结点最终把空间分解为矩形这些矩形是结点可能落到的各子树范围这些矩形是结点可能落到的各子树范围K-D树的不足 其结构与输入数据的依次也是有关的其结构与输入数据的依次也是有关的有可能导致它每个子树的元素安排不均衡有可能导致它每个子树的元素安排不均衡BentleyBentley和和FriedmanFriedman独创了独创了adaptive k-dadaptive k-d树,树,类似于类似于BSTBST全部的数据记录都存储在叶结点全部的数据记录都存储在叶结点内部结点只是用来在各个维之间导航内部结点只是用来在各个维之间导航每一个识别器的选择不再依靠于输入的数据每一个识别器的选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 12 习题 分析 优秀 PPT
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内