伸展树(Splay Tree)的深度理解

伸展树(Splay Tree)的深度理解

伸展树作为一种非常受欢迎的数据结构,其最初的想法(标记为想法一)是通过变换树的结构将最近访问的元素置于树根,倘若一系列操作都是和该元素有关,那么在变成树根之后将极大的提高该元素的访问速度。基于该想法,每次访问该元素时,沿着访问路径,逐层进行简单的单层旋转,从而使该元素的深度减小,最后变成树根。

图1
(P表示路径path,V表示访问visit)
(这是左旋,对应的有右旋,没有画出来)

实际应用中,多次连续的操作也可能是访问不同的元素,所以不得不考虑其他元素的访问速率问题。所以进一步的想法(标记为想法二)是,如果在树根化的过程中,能够使树的整体结构更加平衡,那么不仅可以把当前元素置于树根,而且也方便了其他元素的访问。

但是,大家不要对想法二想得过于完美。因为目标元素的树根化过程只和路径上的元素息息相关。所以想法二中的平衡只是针对

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值