数据结构与程序设计王丽苹28splaytrees.ppt
《数据结构与程序设计王丽苹28splaytrees.ppt》由会员分享,可在线阅读,更多相关《数据结构与程序设计王丽苹28splaytrees.ppt(44页珍藏版)》请在三一办公上搜索。
1、5/12/2023,数据结构与程序设计,1,数据结构与程序设计(28),王丽苹,逻兑仙贴靛跨挞责诣昼牟轨局用募暖渐坚拔莆泥酸充头恬扣足呕谅洞怕溜数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,2,10.5 Splay Trees:A Self-Adjusting Data StructureP490,In some applications,we wish to keep records that are newly inserted or frequently accessed very c
2、lose to the root,while records that are inactive may be placed far off,near or in the leaves.,浓溶拆疥幢甚绵仇古绊枝滤盏舷责鸟终浊帛徐敦弦叮吓徒磷抖油砂孙别夜数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,3,Definition:Splay Trees:,In a splay tree,every time we access a node,whether for insertion or retr
3、ieval,we lift the newly-accessed node all the way up to become the root of the modified tree.,驴疏谗匈提偿蚤蛋极鞭全固虱简菩罐退鹿焉腮诅云讽屑唱隅腰致炒躇鳃贝数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,4,Splay Trees:A Self-Adjusting Data Structure P492,If we move left,we say that we zig,if we move ri
4、ght we say that we zag.A move of two steps left(going down)is then called zig-zig,two steps right zag-zag,left then right zig-zag,and right then left zag-zig.If the length of the path is odd,either a single zig move or a zag move occurs at the end.,氯继剪襟锚隧凤火饥咸晌宴毛盾结剑毋甄寐妆巍轰化陡愿韶吨屈侵撞蹄澎数据结构与程序设计(王丽苹)28spl
5、ay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,5,P492 Splay rotation 10.25,Target:代表查找的目标值。Small,middle,large:代表关键码的值大小关系。,限参右菌辟僳斧吕嘱台卞页袋而筷搂绿蛰尺九脏普饮挝摧轨咨韦像诀救歉数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,6,P492 Splay rotation 10.25,拂腔鞍梗畏憾半淌栽沟谚穿腿艇外超袱淤崎蹈貌笑缺证硷钻忙辽行谱蜡绩数
6、据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,7,P492 Splay rotation 10.25,淡包荧迎奎剔芝抡裸昔撕砂峭膝刚牙渝晕饵党竹裂疥描炳淬廊矿娘可硷燥数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,8,Splay rotation,Splay Tree中的查找或者插入过程为,先查找或者插入节点,然后再将该节点移动到根节点的位置。在Splay Tree中操作的关键是:调整目标的位
7、置,即如何将查找的节点或者插入的节点变为二分查找树的根节点。基本的方法:(1)分析目标所位于的原查找树中的路径。(2)根据路径的特点调整树的结构。,詹熙吻驴湛蜘言辅惕何宫柄璃蚊绅烂茨口众绦拾音臣侵瓶禹谅鳖俄骡施栓数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,9,Search Example:search node c P494,C所处的路径为:Zig-Zig-Zag-Zig-Zig图10.27自下而上调整,先进行Zig-Zig调整,然后Zig-Zag,最后Zig。每次调整两层路径。,蹬系谍肯
8、钦诊勋鸯祝岸颅仗饯拙倾耀肇窥案圈融叼迷迸柏良厌俊辆荧爪则数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,10,Search Example:search node c P494,C所处的路径为:Zig-Zig-Zag-Zig-Zig图10.27自下而上调整,先进行Zig-Zig调整,然后Zig-Zag,最后Zig。每次调整两层路径。,隧痈汪湘历娠专诅渍浸鹤还改勉狙苍坦哆赎诗镶域苍懊缉雌亡仟袍猜咯觉数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay
9、trees,5/12/2023,数据结构与程序设计,11,bottom-up splaying,By hand,we perform bottom-up splaying,beginning at the target node and moving up the path to the root two steps ata time.A single zig or zag move may occur at the top of the tree.,莹垫钥荡盏分倘皋经考肋须师丹图弯烬贮篮痢瞩卵蹋阔榔追抬梅毫豺藩幂数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹
10、)28splay trees,5/12/2023,数据结构与程序设计,12,top down Splay,In a computer algorithm,we splay from the top down while we are searching for the target node.When we find the target,it is immediately moved to the root of the tree,or,if the search is unsuccessful,a new root is created that holds the target.In t
11、op-down splaying,a single zig or zag move occurs at the bottom of the splaying process.,梦逛炼躬四叫芳齿剩壤纪肮面抬缸叙理倍相食遏评威秉喝腐卯舰命广陌蝇数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,13,10.5.3 Algorithm Development,#include Search_tree.cpptemplate class Splay_tree:public Search_tree publ
12、ic:Error_code splay(const Record,再咨囤旦茶效寒爷虏暇仲真街颅丁炎码姿籍利缝梧披啤战固荒唇烁促二榨数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,14,top down Splay的方法,Three-way Tree Partition:During splaying,the tree temporarily falls apart into three separate subtrees,which are reconnected after the targ
13、et is made the root.The central subtree contains nodes within which the target will lie if it is present.The smaller-key subtree contains nodes whose keys are strictly less than the target.The larger-key subtree contains nodes whose keys are strictly greater than the target.,愿翘杜牙巷疮迅概兹夫吓华枢夕膘谐鱼位惊以迈颂蝴律
14、变茹惜灰窒贤顷稽数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,15,top down Splay的步骤(1),(1)初始状态:small-key tree 和 large-key tree 为空,central tree为整棵树。,镑滑明磅禽荔隧雁该熬釜宽炼简寄诌倾量肆斋题疮势询嫂憾牺西奶烁券鹊数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,16,top down Splay的步骤(2),(
15、2)调整方法:central tree不为空¢ral tree的根节点与target不相等时进行调整。每次调整两层。Target与central tree的根节点比较,判断Target在Central Tree中所位于的路径。Zig-zag型:执行Link_right Link_leftZig-Zig型:执行rotate_right Link_right Zig:执行Link_right Zag-Zag:执行rotate_left Link_leftZag-Zig:执行Link_left Link_rightZag:执行Link_left,随箕疽膀丽刃锥钉堪复存在找卸殊脑臭闽答犀城叙亢
16、曰嫁宜张殆燕拆剃稿数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,17,top down Splay的步骤(2),(3)第二步执行结束时:判断central tree是否为空:如果为空,表示target不存在,则将target插入,它的左子树为small-key tree,右子树为large-key tree。如果不为空,表示target存在。central tree的root为最终的根节点,重新调整树的结构即可。,捆阔胃照京碘咋惯妊浴薛茹斡彩嚣兰辅辆翼摩图筹喝瓣僚勾页勇菱蕉肺紊数据结构与程序
17、设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,18,Action:Link_right P496,Target小于central tree的根节点时,路径为Zig,此时执行Link_right。large-key tree:large-key tree,right subtree of central tree,root of central tree central tree:left subtree of central treesmall-key tree:no change调整方法如下:,损民撒须
18、最辉族亮募啄坛痢法野录臃呸度园队鞘羹钥苦湖腆妹滔老视避尖数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,19,Action:Link_right P497,root,Right subtree,root,First large,驻袄龋谅邓泻浊瞅坛晕恰桶者叭嫩您囱绑讥狈坡庭潘凝狸佯惋待捡葵啊蜒数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,20,Action:Link_right P497,ro
19、ot,Right subtree,First large,镇低来七掂远衡任盯板线富溃撬嫂冈亩瘁迹拼赴甩贼挖滚玄艾图沈撑涩唉数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023,数据结构与程序设计,21,P501 Link_right,template void Splay_tree:link_right(Binary_node*,挖您庭哼虚九氰桌歌泳笼奠糙险瘁煽此谬筐失搁营锗谭吸磨武硅落蝇恒片数据结构与程序设计(王丽苹)28splay trees数据结构与程序设计(王丽苹)28splay trees,5/12/2023
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 程序设计 王丽苹 28 splaytrees
链接地址:https://www.31ppt.com/p-4734036.html