伸展树(Splay Tree)的旋转

      假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法, 在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。splay tree应运而生。splay tree是一种自调整形式的二叉查找树,它会沿着从某个节点到树根之间的路径,通过一系列的旋转把这个节点搬移到树根去。(来自百度百科http://baike.baidu.com/view/1118088.htm

 

      令X是在访问路径上的一个非根节点,我们将在这个路径上实施旋转操作。

      1. 如果X的父结点是树根,那么只需要旋转X和树根(具体见AVL树的单旋转)

      2. 否则,X就有父亲(P)和祖父(G),存在两种情况以及对称的情形要考虑

          a. 之字形情形(zig-zag)

 

          b. 一字型情形(zig-zig)

 

 

以上内容来自《数据结构与算法分析C语言描述》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值