算法合集之伸展树的基本操作与应用.pptx
《算法合集之伸展树的基本操作与应用.pptx》由会员分享,可在线阅读,更多相关《算法合集之伸展树的基本操作与应用.pptx(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1伸展树伸展树(Splay Tree)是二叉查找树的改进。对伸展树的操作的平摊复杂度是O(log2n)。伸展树的空间要求、编程难度非常低。第1页/共35页2伸展树伸展树与二叉查找树一样,也具有有序性。即伸展树中的每一个节点x都满足:该节点左子树中的每一个元素都小于x,而其右子树中的每一个元素都大于x。伸展树可以自我调整,这就要依靠 第2页/共35页3伸展操作Splay(x,S)伸展操作Splay(x,S)是在保持伸展树有序性的前提下,通过一系列旋转操作将伸展树S中的元素x调整至树的根部的操作。在旋转的过程中,要分三种情况分别处理:1)Zig 或 Zag 2)Zig-Zig 或 Zag-Zag
2、3)Zig-Zag 或 Zag-Zig 第3页/共35页4伸展操作Splay(x,S)情况1Zig或Zag操作:节点x的父节点y是根节点。第4页/共35页5伸展操作Splay(x,S)情况2Zig-Zig或Zag-Zag操作:节点x的父节点y不是根节点,且x与y同时是各自父节点的左孩子或者同时是各自父节点的右孩子。第5页/共35页6伸展操作Splay(x,S)情况3Zig-Zag或Zag-Zig操作:节点x的父节点y不是根节点,x与y中一个是其父节点的左孩子而另一个是其父节点的右孩子。第6页/共35页7伸展操作举例Splay(1,S)第7页/共35页8伸展树的基本操作求前趋 求后继合并分离查找
3、插入删除 求最大值求最小值伸展操作是基础!第8页/共35页9时间复杂度分析S(x)表示以x为根的子树|S|表示树S的节点个数令(S)=log2|S|(表示取下整)(x)=(S(x)第9页/共35页10时间复杂度分析用1元钱表示一个单位时间代价。伸展树不变量:在任意时刻,伸展树中的任意节点x都至少有(x)元的存款。对某个节点的对某个节点的访问和旋转访问和旋转会计方法第10页/共35页11时间复杂度分析在Splay调整过程中,费用将会用在以下两个方面:(1)为使用的时间付费为使用的时间付费。也就是每一次单位时间的操作,要支付1元钱。(2)当伸展树的形状调整时,需要加入一些钱或者重新分配原来树中每个
4、节点的存款,以保持不变量继续成保持不变量继续成立立。第11页/共35页12时间复杂度分析用(x)和(x)分别表示在进行一次旋转操作前后节点x处的存款。分三种情况分析旋转操作的花费:(1)Zig 或 Zag (2)Zig-Zig 或 Zag-Zag (3)Zig-Zag 或 Zag-Zig 第12页/共35页13时间复杂度分析 情况1Zig或Zag为了保持伸展树不变量继续成立,需要花费:此外我们花费另外1元钱用来支付访问、旋转的基本操作。所以,一次Zig或Zag操作的花费至多为3(S)-(x)+1第13页/共35页14时间复杂度分析 情况2Zig-Zig或Zag-Zag为了保持不变量,需要花费:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 伸展 基本 操作 应用
限制150内